在给定的向量matlab中使用if else语句绘制图表

时间:2015-03-26 02:46:11

标签: matlab

我无法从给定的向量中获得正确的图形。我不知道我是否正确,因为我是matlab的新手。

beta=3;
gamma=1/beta;
BLq=15000;
SBLq=30000;
w1=1/4;
w2=3/4;
BLqsd=((w1*BLq)+(w2*SBLq));
B=1000000000;
C=1;
A=BLqsd/(B*C);

alpha=[0.1 0.2 0.3 0.4 0.5 1 2 3 4 5]
APqsd=alpha*A;
currentAPqsd=0.00002625;
P=beta* currentAPqsd;
O=gamma* currentAPqsd;
    if APqsd>=P
        APqsd=P;
    else if APqsd<=O
        APqsd=O;
    end
plot(alpha,APqsd,'-ro');

end

1 个答案:

答案 0 :(得分:0)

这基本上是一个疯狂的猜测,但我假设您想要获取APqsd向量并检查每个元素以查看它是否满足布尔条件,然后替换不同向量中的值。如果我正确地解释你想要的东西,你想要的是:

%// Your code
alpha=[0.1 0.2 0.3 0.4 0.5 1 2 3 4 5];
APqsd=alpha*A;
currentAPqsd=0.00002625;
P=beta*currentAPqsd;
O=gamma*currentAPqsd;

%// Modified code
APqsd(APqsd >= P) = P(APqsd >= P);
APqsd(APqsd <= O) = O(APqsd <= O);

plot(alpha,APqsd,'-ro');

基本上,您要检查APqsd >=中的P中的任何值是P中的相应值。如果是,则将这些值替换为O的相应位置。同样,您对<=执行相同的检查,但它是if/else。一旦你完成了你的情节。

您可以通过使用逻辑索引来避免使用for和{{1}}循环。