Matlab 如何在向量中存储对象?

Matlab 如何在向量中存储对象?,matlab,Matlab,基本上我想做的是定义一个空向量,然后用for循环中的一些对象填充它,比如 status = []; while(sweepLine.y > 0) for i = 1 : m isSweeped = IsBeingSweeped(Sections(i), sweepLine); if(isSweeped == 1) status(i) = Sections(i); end sweepLine.y = sweepLine.y

基本上我想做的是定义一个空向量,然后用for循环中的一些对象填充它,比如

status = [];
while(sweepLine.y > 0)
    for i = 1 : m
       isSweeped = IsBeingSweeped(Sections(i), sweepLine);
       if(isSweeped == 1)
       status(i) = Sections(i);
     end
     sweepLine.y = sweepLine.y - 1;
 end
但是,matlab简单地告诉我错误如下:, 将节转换为双精度时发生以下错误: 使用double时出错 无法从节转换为双精度

tryGOX中的错误(第41行) 状态(i)=第(i)节

如果我想用Java做同样的事情,我可能会写

Section[] status = new Section[10];
while(sweepLine.y > 0){
    for(int i = 0; i < 10; i ++){
       isSweeped = IsBeingSweeped(Sections[i], sweepLine);
       if(isSweeped == 1)
       status[i] = Sections[i];
     }
    sweepLine.y = sweepLine.y - 1;
 }
Section[]状态=新节[10];
while(sweedline.y>0){
对于(int i=0;i<10;i++){
isSweeped=正在扫掠(截面[i],扫掠线);
如果(isSweeped==1)
状态[i]=节[i];
}
sweepLine.y=sweepLine.y-1;
}
如何在Matlab中实现这一点


谢谢

有很多缺少的信息。一些猜测:

状态
是一个函数。不要将其用作变量。如果错误仍然存在,请更改其名称并重试

您说过
部分包含对象。不能在双数组中存储对象。请改为使用:

或者更好:

sectionStatus{ii} = Sections(ii);
因为
i
是虚构的单位,当您覆盖它时,它可能会导致问题。(虽然在较新版本的Matlab中没有那么多麻烦(如果有的话)


更复杂的方法是使用


这将为您提供一个包含所有节的结构,其中包含类实例的名称。我猜,这实际上就是变量
节的构建方式。

如果知道大小,可以预先分配

status= zeros(size);

干杯

如果你知道你能做的尺寸,最好是:

status = zeros(N);
或:

如果您不知道大小,那么在for循环中,您可以编写:

status(end+1) = Sections(i);

您是否缺少
if
语句的
end
status = zeros(N);
status(N) = 0;
status(end+1) = Sections(i);