我无法从给定的向量中获得正确的图形。我不知道我是否正确,因为我是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
答案 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}}循环。