【问题标题】:MATLAB: Subscripted assignment between dissimilar structuresMATLAB:不同结构之间的下标分配
【发布时间】:2014-12-03 02:19:18
【问题描述】:

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

不同结构之间的下标赋值

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

【问题讨论】:

  • 您不能将struct 放入数组中。不过,您可以将 P 设为元胞数组:P{i}=MakePoint(x(i),y(i),z(i))
  • @David,这是不正确的。你可以有一个结构数组。唯一的限制是所有结构数组元素具有相同的字段名称以相同的顺序。
  • 循环前P的值是多少?

标签: arrays matlab structure


【解决方案1】:

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

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

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

并且不需要循环。

你可以试试here

【讨论】:

    猜你喜欢
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 2021-03-04
    • 2011-12-17
    • 2018-02-20
    • 1970-01-01
    • 2017-02-24
    相关资源
    最近更新 更多