Matlab 回路分配误差

Matlab 回路分配误差,matlab,for-loop,variable-assignment,Matlab,For Loop,Variable Assignment,今天不是我和MATLAB的日子 我试着做一些最简单的事情,比如进入一个结构,提取一个值,然后递增地将它分配给一个对象。结果是,我在赋值A(:)=B中得到了恼人的,A和B中的元素数必须相同。错误 以下是我所拥有的: 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的日子

我试着做一些最简单的事情,比如进入一个结构,提取一个值,然后递增地将它分配给一个对象。结果是,我在赋值A(:)=B中得到了恼人的
,A和B中的元素数必须相同。
错误

以下是我所拥有的:

 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
但仍然没有成功。有人能帮忙吗?

类型(e)可能是标量,因为e是标量。在作业EEG.event(e)中,您的右手边是否为标量?如果不是标量,则会出现此错误

比如说,

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

我不知道RHS意味着什么,也不知道标量意味着什么。你能解释一下吗?我编辑了答案来扩展RHS。标量表示数据只有一个元素。向量表示它有多个元素作为行或列。矩阵既有行也有列。谢谢。否在“类型”中只有一个值。这就是为什么我认为输入那个值会返回它。你能在赋值中加一个断点,独立地检查左右两边,看它们的大小是否匹配吗?不知道标量、向量或矩阵是什么,继续使用matlab会让你的生活变成地狱。标量是单个数字,向量是数字列表,矩阵是数字表。你会从线性代数课程中受益匪浅。在那之后,Matlab会变得容易得多。你为什么要用循环来做这种赋值呢?这很容易矢量化。