0

在下面的代码中,我试图获取每个值的所有 IF 结果的输出向量,从 0 到 0.25,步长为 0.001,以 O3ppm 为单位。

目前我只能得到一个输出,即 BPlo=0.065,即第二个 IF 输出。

我倒要看看; BPlo=[n, n1, n2....nx] 如果有意义的话。

任何帮助将不胜感激。

这部分代码是关于空气质量监测的荣誉年项目的更大脚本的一部分。

格雷姆。

O3ppm=[0:0.001:0.25];

for O3ppm=[]    
    if O3ppm < 0.065 
       BPlo = 0 
    elseif (O3ppm >= 0.065)&&(O3ppm < 0.085)
            BPlo = 0.065
            elseif (O3ppm >= 0.085)&&(O3ppm < 0.105)
                    BPlo = 0.085
                    elseif (O3ppm >= 0.105)&&(O3ppm < 0.125)
                            BPlo = 0.105
                            elseif (O3ppm >= 0.125)
                                    BPlo = 0.125
    end
end
BPlo
4

2 回答 2

2

好吧,您只能设置BPlo为标量,因此它不会是向量。

由于您已经编写了所有条件,因此BPlofor循环之前初始化

BPlo=zeros(size(O3ppm));

并替换for O3ppm=[]

for i=1:length(03ppm)

然后替换with 的任何实例,以及BPlo=withBPlo(i)=的任何实例。O3ppmO3ppm(i)

我敢肯定有一种更简洁的方法来处理所有条件而不是使用一堆elseif',但如果你的代码运行得足够快,那没关系。

于 2013-11-06T11:11:11.347 回答
0

在代码的第一行中,您设置O3ppm了一个包含 251 个值的向量:

O3ppm=[0:0.001:0.25];

并在下一行中将其设置为空向量

for O3ppm=[]

我还没有研究过你的其余代码,我认为你应该先解决第一个问题。目前还不完全清楚修复应该是什么。

于 2013-11-06T11:11:04.667 回答