在MATLAB中,除了矩阵的前三列之外,什么命令将被擦除?

时间:2010-08-03 21:05:48

标签: matlab matrix

我基本上尝试使用矩阵a,然后将其转换为矩阵af,其中a的前三列中包含值。我只想将a修剪为前三列。

3 个答案:

答案 0 :(得分:4)

newMatrix = oldMatrix(:,1:3)

这说“我有一个名为oldMatrix的矩阵。我想将该矩阵的子集存储到newMatrix中”,括号中的维度表示你想要的子集。第一个冒号表示“所有行”,1:3表示“第1列到第3列”。

答案 1 :(得分:3)

a = ones(10,10);
a = a(:,1:3);

答案 2 :(得分:2)

如果您希望删除除前三列以外的所有列,请执行此操作...

A(:,4:end) = [];

如果您只希望将前三列复制到一个新数组中,那么这是正确的......

B = A(:,1:3);

当然,你总是可以这样做基本上删除那些最后一列......

A = A(:,1:3);

一个比另一个好吗?似乎没什么区别。

A = rand(4000);
tic,A(:,4:end) = [];toc
Elapsed time is 0.044124 seconds.

A = rand(4000);
tic,A = A(:,1:3);toc
Elapsed time is 0.040166 seconds.

似乎存在一个小的(可重复的)差异,但我并不完全相信这是一致的。下一版MATLAB可能会改变这些时间。