试图改变矩阵中的列
6视图(30天)
显示旧的评论
假设我有一个数组= (1 2 3 4;3 3 4 5;4 4 4 7],一个3×4矩阵。我想改变某一列指定行。所以让我想改变列1,3,2相应的行1,2,3。所有的列将改变我改变相应的行值10。所以我理想的答案,当打印新的矩阵应该[10 2 3 4;3 3 10 5;4 10 4 7]。我尝试不使用任何循环节省运行时间。 And I've tried doing something like this: array(1:3, [1,3,2]) = 10. But I got the result [10 10 10 4; 10 10 10 5; 10 10 10 7]. which is not the answer I want. Is it possible to do this without using any loops. Any help would be appreciated thanks!!
0评论
接受的答案
戴夫B
2021年9月12日
指定行和列使MATLAB矩形:一个(1:2,1:4)指的是1和2的行,列1到4,即MATLAB不需要双行/列但范围。
你可以指定他们的指数变化实证值。
有两种方法来索引值矩阵,可以由行和列或一个线性指数。(你不需要知道这个来解决你的问题,但是……)线性指数看起来像这样:
= (1 2 3 4;3 3 4 5;4 4 4 7];
重塑(1:元素个数(a)、大小(a))
印第安纳州= sub2ind(大小(a)、(1 2 3) (1 2 3))
指数的手,很容易调整值:
(印第安纳州)= 10
2的评论
戴夫B
2021年9月12日
sub2ind使它容易,但你也可以做过类似:(cols-1) *高(a) +行
(我只提到这个是因为我经常做sub2ind-like或ind2sub-like计算当我在c++)