如何从文本文件中访问矩阵的所需部分。

时间:2016-02-28 09:43:55

标签: matlab matrix

我创建了一个矩阵A并使用以下命令将其存储在名为MatrixA.txt的文件中

dlmwrite('MatrixA.txt',A);

现在我用的时候     B = csvread( 'MatrixA.txt',R,C);

其中r和c是矩阵所需的行和所需的cols我不能得到它因为它占据了矩阵的最后部分。 对于Ex ...如果我有     A = [1 2 3 4;        5 6 7 8;        9 10 11 12;       13 14 15 16]

我希望有     B = [1 2;        5 6]

但是当我使用时     B = csvread( 'MatrixA.txt',2,2)

它给出了     B = [11 12;        15 16]

请帮帮我们......

1 个答案:

答案 0 :(得分:0)

您应该使用:

B=csvread('MatrixA.txt',0,0,[0 0 1 1])

在致电csvread时,您必须指定:

  • 起始rowcolumn0-based
  • 您要读取的数据范围:[R1 C1 R2 C2]其中(R1,C1)是要读取的数据的左上角,(R2,C2)是右下角

此外,您可以阅读整个矩阵(供进一步使用),然后访问您需要的子矩阵:

B=csvread('MatrixA.txt')
start_row=1;
end_row=2;
start_column=1;
end_column=2;

B1=B(start_row:end_row,start_column:end_column)

此外,您可以指定一个步骤:

B=csvread('MatrixA.txt')
start_row=1;
end_row=4;
row_step=2;
start_column=1;
end_column=4;
column_step=2;

B2=B([start_row:row_step:end_row],[start_column:column_step:end_column])

作为替代方案,您可以使用dlmread

B=dlmread('MatrixA.txt',',',[0 0 1 1])

希望这有帮助。

Qapla'