在matlab中读取CSV文件并使其成为二维

在matlab中读取CSV文件并使其成为二维,matlab,file-io,csv,matrix,Matlab,File Io,Csv,Matrix,这是我想做的一个例子: 我有一个CSV文件: 1,200,3,500... 2,400,4,600... 数据是成对的,即存在交替值x、y、x、y 我想得到这个输入并制作一个2d矩阵,其中矩阵值为m=x–y。输出应为CSV格式,带有三个x、y、m、x、y、m等,…。感谢您的帮助。这不是问题: data = importdata('file.csv'); x = data(1:2:end); //number in the middle means you take every second

这是我想做的一个例子:

我有一个CSV文件:

1,200,3,500...

2,400,4,600...
数据是成对的,即存在交替值x、y、x、y

我想得到这个输入并制作一个2d矩阵,其中矩阵值为m=x–y。输出应为CSV格式,带有三个x、y、m、x、y、m等,…。感谢您的帮助。

这不是问题:

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);
这个解决方案的想法是正确的。让我来解决一些小问题:

%# 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

谢谢但我希望x是奇数列,y是偶数列。此代码不执行此操作。