在matlab中更改矩阵的两列

时间:2015-04-28 14:53:53

标签: matlab

代码如下。

a=0;
>> b=[4 0];
>> a([2,1])=b

答案是:

a=[0 4].

我的问题是:为什么我们在进行分配时可以改变矩阵a的大小(因为a的原始大小是1乘1,现在a的大小是1乘2)?非常感谢您的时间和关注。

1 个答案:

答案 0 :(得分:0)

当你最初分配一个单个数字(1乘1)时,试图访问索引a([2,1])应该得到索引超过矩阵维度,因为a是1乘1. Matlab的方式但是,处理问题的方法是,当你重新分配b等于a的某个索引时,分配该索引并且a的结构也会改变。只要数据适合,您就可以执行(:,1)= b或任何其他索引。

如果

b = [0 4; 4 0];

这是一个二维数据,你将无法做([2,1])= b,因为分配的索引是1维。但是,您可以通过执行以下操作为b分配2维索引:

a(:,:,1)=b