如何将脚本中的结果保存在 Matlab 中的向量中?
Posted
技术标签:
【中文标题】如何将脚本中的结果保存在 Matlab 中的向量中?【英文标题】:How to save results from my script in vectors in Matlab? 【发布时间】:2014-03-26 14:16:08 【问题描述】:我想知道是否有人可以帮助我使用 MatLab。
有没有办法将这两个值 count_zero
和 count_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 中的向量中?的主要内容,如果未能解决你的问题,请参考以下文章