【问题标题】:Loop assignment error matlab循环分配错误matlab
【发布时间】:2014-03-07 22:10:58
【问题描述】:

今天不是我和 MATLAB 伙计们在一起的日子...

我试图做最简单的事情,进入一个结构,提取一个值并逐步将其分配给一个对象。结果我得到了令人发指的In an assignment A(:) = B, the number of elements in A and B must be the same. 错误。

这是我所拥有的:

 for e=1:length(EEG.event)
  Type(e)=EEG.event(e).type
 end

我也试过这个:

for e=1:length(EEG.event)
  Type(e)=EEG.event(1,e).type
end

但仍然没有成功。有人可以帮忙吗?

【问题讨论】:

  • 你为什么要使用循环来做这种赋值?这很容易矢量化。

标签: matlab for-loop variable-assignment


【解决方案1】:

Type(e) 可能是一个标量,因为 e 是标量。您在作业 EEG.event(e).type 中的右手边是标量吗?如果这不是标量,您将收到此错误。

例如,

a(1) = [1 2] % produces an error like yours
a(1) = 1 % Ok

【讨论】:

  • 我不知道 RHS 是什么意思,也不知道标量是什么意思。你能解释一下吗?
  • 我编辑了答案以扩展 RHS。标量意味着您的数据只有一个元素。向量表示它具有多个元素作为行或列。矩阵既有行又有列。
  • 谢谢。 No 在“类型”中只有一个值。这就是为什么我认为进入该值会返回它
  • 能不能在赋值中打断点,分别检查左右两边的大小是否匹配?
  • 不知道什么是标量、向量或矩阵,继续使用 matlab 会让你的生活变得像地狱一样。标量是单个数字,向量是数字列表,矩阵是数字表。您将从线性代数课程中受益匪浅。之后,Matlab 会容易得多。
猜你喜欢
  • 2018-04-21
  • 1970-01-01
  • 1970-01-01
  • 2014-04-21
  • 2017-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多