我正在尝试在matlab中执行一个非常基本的赋值来创建一个结构数组 这是分配它的主要代码
for i=1:n
P(i) = MakePoint(x(i), y(i), z(i));
end
函数MakePoint
是
function P = MakePoint(x,y,z)
% P is a point with x-coordinate P.x and y-coordinate P.y.
P = struct('x',x,'y',y,'z',z)
end
换句话说,我正在尝试制作P
,并使用MakePoint
创建“点数”数组。我收到了错误
不同结构之间的订阅分配
我该如何解决这个问题? 谢谢!
答案 0 :(得分:0)
目前尚不清楚为什么您的代码会出现此错误。
但是,设置结构数组的更好方法是使用单元格数组参数:
P = struct('x', mat2cell(x), 'y', mat2cell(y), 'z', mat2cell(z) );
并且不需要循环。
您可以尝试here。