运行下面的代码时,出现错误“
无法执行赋值,因为这种类型的变量不支持点索引。
“关于如何解决它的任何想法?
dots.nDots = 100;
for dots = 1:dots.nDots
dots.x = (rand(1,dots.nDots));
dots.y = (rand(1,dots.nDots));
end
答案 0 :(得分:3)
该行:
dots.nDots = 100;
将变量dots
创建为具有字段nDots
的{{3}}。但是,您在开始structure array时会覆盖可变点:
for dots = 1:dots.nDots
这时,变量dots
变为整数值。然后,当您尝试访问字段nDots
时,会看到错误消息,因为dots
不再是具有该字段的结构。
如果仅重命名循环变量,就不会再出现该错误:
dots.nDots = 100;
for iDot = 1:dots.nDots
dots.x = (rand(1, dots.nDots));
dots.y = (rand(1, dots.nDots));
end
但是,不清楚您希望通过此循环完成什么。所有这些操作将用一组新的100个随机值重复覆盖dots.x
和dots.y
,每次重复100次。