如何将脚本中的结果保存在 Matlab 中的向量中?

Posted

技术标签:

【中文标题】如何将脚本中的结果保存在 Matlab 中的向量中?【英文标题】:How to save results from my script in vectors in Matlab? 【发布时间】:2014-03-26 14:16:08 【问题描述】:

我想知道是否有人可以帮助我使用 MatLab。 有没有办法将这两个值 count_zerocount_value 保存到 2 个向量中。

以下代码中感兴趣的部分在while循环内,上半部分与本题无关。

例如,count_zero 的所有值都应保存在向量 a=[count_zero count_zero ..] 中,count_value 的所有值都应保存在向量 b=[count_value count_value ...] 中。

这是我的代码,在此先感谢。

              threeminutesofvideo_Youtube;
              h=[0:0.5:179];
              for idx=1:length(h)
              threshold=h(idx);
              m =find(threshold-1<=x & x<=threshold);
              Y(idx)=sum(y(m));
              end

  count_zero=0;
  count_value=0;
  i=1;

while i<length(Y)

if (Y(i)==0)  
    count_zero=count_zero+1;
    i=i+1;
    while Y(i)==0  && i<length(Y)
    count_zero=count_zero+1;
    i=i+1;
    end

    if i<(length(Y))
    count_zero
    count_zero=0;
    end

    if i==(length(Y))  &&   Y(length(Y))~=0 
                        count_value=1;
                        count_value
                        count_value=0;
    elseif   i==(length(Y))  &&   Y(length(Y))==0             
                        count_zero=count_zero + 1;  
                        count_zero
                        count_zero=0; 
    end


else
    count_value=count_value+1;
    i=i+1;
    while Y(i)~=0 && i<length(Y)
    count_value=count_value+1;
    i=i+1;
    end
    if i<(length(Y))
    count_value
    count_value=0;
    end

    if i==(length(Y))  &&   Y(length(Y))~=0 
                        count_value=count_value+1;
                        count_value
                        count_value=0;
    elseif   i==(length(Y))  &&   Y(length(Y))==0             
                        count_zero=1;  
                        count_zero
                        count_zero=0; 
    end


end

结束

【问题讨论】:

考虑为它们添加索引,例如count_zero(i)。此外,为了安全起见,请考虑在 while 循环之前为它们预先分配。 当我尝试像你说的那样添加索引 count_zero(i) 它告诉我一个错误:索引超出矩阵维度。 off_on_vectorsave 中的错误(第 48 行)count_value(i) 【参考方案1】:

据我了解,您想记住向量中的值,而不是保存到文件中,不是吗? 在这种情况下,让我们调用您要记住的向量如果您事先知道要记住的值的数量,您可以这样做

a = NaN*ones(num_of_values,1);
i=1;
while condition
    ...
    a(i) = temp_val;
    i = i+1;
end

如果您不知道先验值的数量:

a=[];
i=1;
while condition
     ...
     a = [a;temp_val];
     i=i+1;
end

希望对你有所帮助

【讨论】:

非常感谢!我没有这样做,但它非常有帮助,尤其是 a=[];和 a=[a;temp_val];部分! 那么请给答案​​评分:) 我会的

以上是关于如何将脚本中的结果保存在 Matlab 中的向量中?的主要内容,如果未能解决你的问题,请参考以下文章

matlab里如何把一个矩阵相同列向量的列序号依次输出出来?

如何通过C ++中的数据获得向量的索引

关于用matlab进行向量归一化的问题

matlab如何使行向量中的元素平方?

matlab怎么保存 matlab如何保存

如何使用matlab将256灰度位图图像保存为24位灰度图像?