Прочитайте файл CSV в Matlab и сделайте его 2-м - PullRequest
2 голосов
/ 16 сентября 2011

Это пример того, что я хочу сделать:

У меня есть CSV-файл:

1,200,3,500...

2,400,4,600...

Данные связаны, то есть существуют чередующиеся значения x, y, xy….

Я хочу взять этот вход и сделать 2-мерную матрицу, где значение матрицы будет m = x – y .Вывод должен быть в формате CSV с тройками x, y, m, x, y, m,….Любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 17 сентября 2011

Решение от @ VladimirPerković было правильной идеей.Позвольте мне исправить некоторые незначительные проблемы:

%# read CSV file
data = csvread('file.csv');
[r c] = size(data);

%# create output matrix
out = zeros(r,c/2*3);
out(:,1:3:end) = data(:,1:2:end);
out(:,2:3:end) = data(:,2:2:end);
out(:,3:3:end) = data(:,1:2:end) - data(:,2:2:end)

%# save as CSV file
csvwrite('out.csv', out)

Создан файл вывода:

1,200,-199,3,500,-497,1,200,-199,3,500,-497
2,400,-398,4,600,-596,2,400,-398,4,600,-596
1,200,-199,3,500,-497,1,200,-199,3,500,-497
2,400,-398,4,600,-596,2,400,-398,4,600,-596
0 голосов
/ 16 сентября 2011

Это не проблема:

data = importdata('file.csv');
x = data(1:2:end); //number in the middle means you take every second sample
y = data(2:2:end);
m = x - y;

Теперь вывод:

output_data = [x;y;m];
output_data = output_data(:);
csvwrite ('output.csv' , output_data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...