MATLAB:不同结构之间的订阅分配

时间:2014-12-03 02:19:19

标签: arrays matlab structure

我正在尝试在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创建“点数”数组。我收到了错误

  

不同结构之间的订阅分配

我该如何解决这个问题? 谢谢!

1 个答案:

答案 0 :(得分:0)

目前尚不清楚为什么您的代码会出现此错误。

但是,设置结构数组的更好方法是使用单元格数组参数:

P = struct('x', mat2cell(x), 'y', mat2cell(y), 'z', mat2cell(z) );

并且不需要循环。

您可以尝试here