加载输入文件并在Octave中创建向量和矩阵

时间:2017-09-11 18:03:45

标签: matlab matrix vector octave

我需要将我的数据加载到Octave并创建一个包含第一列数据的向量A和一个包含其余数据的矩阵B。我已使用load('wine.dat')命令将数据加载到Octave中。我还创建了一个带有向量A的第一列数据的向量,但是我无法将第二列和其他数据拉出来存储到矩阵中。

我的数据集类似于以下内容:

1,14.23,1.71,2.43,15.6,127,2.8,3.06,.28,2.29,5.64,1.04,3.92,1065
1,13.2,1.78,2.14,11.2,100,2.65,2.76,.26,1.28,4.38,1.05,3.4,1050
2,13.16,2.36,2.67,18.6,101,2.8,3.24,.3,2.81,5.68,1.03,3.17,1185
2,14.37,1.95,2.5,16.8,113,3.85,3.49,.24,2.18,7.8,.86,3.45,1480
3,13.24,2.59,2.87,21,118,2.8,2.69,.39,1.82,4.32,1.04,2.93,735
3,14.2,1.76,2.45,15.2,112,3.27,3.39,.34,1.97,6.75,1.05,2.85,1450

A = dlmread('wine.dat', [1])为第一列数据创建了一个向量。如何为第二列和数据集的其余部分创建矩阵?

1 个答案:

答案 0 :(得分:4)

如果您的数据文件wine.dat包含上面包含的示例文本,那么您将处理逗号分隔的数字数据,加载它的最简单选择将是csvread。例如:

B = csvread('wine.dat');

这会将所有数据加载到6乘14的矩阵B中。现在,您可以使用一些简单的indexing创建最终的AB矩阵:

A = B(:, 1);   % Copy the first column of B into A
B(:, 1) = [];  % Remove the first column of B