【问题标题】:MATLAB: Subscripted assignment dimension mismatchMATLAB:下标赋值维度不匹配
【发布时间】:2013-07-03 03:39:26
【问题描述】:

我不明白当我在命令行中键入以下行时 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 矩阵,它仍然显示该错误。我要感谢那些可以帮助我更好地理解这个话题的人。

【问题讨论】:

  • 如果您能多解释一下您想要实现的目标,这可能会有所帮助。要将s 的内容填入w 吗?另外,w 是什么?您没有在示例代码中定义它。

标签: matlab


【解决方案1】:

错误是w(2,k) 是一个1x1 矩阵,而您试图将s,一个2x2 矩阵放入其中。当您进行赋值操作时,即=,等号的两边必须具有完全相同的尺寸。如果他们不这样做,那么您会收到尺寸不匹配错误。

如果w2x2,如您所说,那么w = s 应该可以工作,或者w(2,k) = s(2, k) 也应该可以工作。你到底想达到什么目的?

【讨论】:

  • w(2,k) = s(2, k) 只会复制一个元素而不是整个矩阵
  • @MohsenNosratinia 当然...这就是为什么我问 OP 的意图是什么
猜你喜欢
  • 2013-05-30
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 2015-04-11
  • 1970-01-01
  • 2017-01-26
相关资源
最近更新 更多