我基本上尝试使用矩阵a
,然后将其转换为矩阵af,其中a
的前三列中包含值。我只想将a
修剪为前三列。
答案 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可能会改变这些时间。