MATLAB:下标赋值维数不匹配

MATLAB:下标赋值维数不匹配,matlab,Matlab,当我在命令行中键入以下行时,我不理解MATLAB显示错误的原因 k=2; c=[0 0 0 1 0 0 0 0;0 0 0 0 1 0 0 0]; temp1=[1 0;2 0;1 0;5 0;9 0;5 0;6 0;7 0]; s=c*temp1; w(2,k)=s 下标分配维度不匹配。 >> s s = 5 0 9 0 式中,w(2,k)只不过是一个2x2矩阵,分配了2x2矩阵,它仍然显示该错误。我要感谢那些能够帮助我更好地理

当我在命令行中键入以下行时,我不理解MATLAB显示错误的原因

k=2; 

c=[0 0 0 1 0 0 0 0;0 0 0 0 1 0 0 0];

temp1=[1 0;2 0;1 0;5 0;9 0;5 0;6 0;7 0];

s=c*temp1;

w(2,k)=s
下标分配维度不匹配。

>> s

s =

     5     0
     9     0
式中,w(2,k)只不过是一个2x2矩阵,分配了2x2矩阵,它仍然显示该错误。我要感谢那些能够帮助我更好地理解这个话题的人

错误在于
w(2,k)
是一个
1x1
矩阵,您试图将
s
,一个
2x2
矩阵放入其中。在执行赋值操作时,即
=
,等号的两侧必须具有完全相同的尺寸。如果没有,则会出现尺寸不匹配错误

如果
w
如您所说是
2x2
,那么
w=s
应该工作,或者
w(2,k)=s(2,k)
也应该工作。你到底想实现什么?

错误在于
w(2,k)
是一个
1x1
矩阵,你试图将
s
,一个
2x2
矩阵放入其中。在执行赋值操作时,即
=
,等号的两侧必须具有完全相同的尺寸。如果没有,则会出现尺寸不匹配错误


如果
w
如您所说是
2x2
,那么
w=s
应该工作,或者
w(2,k)=s(2,k)
也应该工作。你到底想要实现什么?

如果你能多解释一下你想要实现什么,可能会有所帮助。是否要用
s
的内容填充
w
?还有,什么是
w
?您没有在示例代码中定义它。如果您能进一步解释一下您想要实现的目标,可能会有所帮助。是否要用
s
的内容填充
w
?还有,什么是
w
?您没有在示例代码中定义它。
w(2,k)=s(2,k)
将只复制一个元素而不是整个元素matrix@MohsenNosratinia当然这就是为什么我问OP的意图是什么
w(2,k)=s(2,k)
只复制一个元素而不是整个元素matrix@MohsenNosratinia当然这就是为什么我问OP的意图是什么