How to correct the code?

2 ビュー (過去 30 日間)
Ancy S G
Ancy S G 2022 年 3 月 1 日
コメント済み: Ancy S G 2022 年 3 月 17 日
phis=3;phib=8;
cons=-.95:0.5:10;% for plotting
Eg=[-2.9583 5.2519 -6.5456 5.2455 -0.4883 -7.0614];% for 6 prosumers
xi=[1 1 1 1 1 1];
for n=1:1:6
if Eg(:,n)>=cons
cons=xi/phis-1;
elseif Eg(:,n)<cons
cons=xi/phib-1;
else
end
end
plot(cons,'*')
xlabel('No of prosumers')
ylabel('consumption')
I have to plot two dfiiferent values for two condition,But I got the same values for two conditions.Is any there any mistake in the code?
  1 件のコメント
KSSV
KSSV 2022 年 3 月 1 日
Dimensions of Eg and cons are different....?

サインインしてコメントする。

採用された回答

Arif Hoq
Arif Hoq 2022 年 3 月 1 日
you are comparing [Eg(:,n)>=cons] with an array where Eg(:,n) neither greater nor smaller.
see in index 2 of Eg, 5.2519 > 0.5 and 5.2519 < 10. that's why you are getting one single value that is "else" value.
if your variable "cons" and Eg iare same dimension array, then
phis=3;
phib=8;
% cons=-.95:0.5:10;% for plotting
% cons= -8;
cons= [-3,8,-7,6,-2,-8];
Eg=[-2.9583 5.2519 -6.5456 5.2455 -0.4883 -7.0614];% for 6 prosumers
xi=[1 1 1 1 1 1];
C=zeros(1,6);
[idx ]=find(Eg >= cons);
B=xi/phis-1;
B1=B(idx);
[idx2]=find(Eg < cons);
D=xi/phib-1;
D1=D(idx2);
C(idx2)=D1;
C(idx)=B1
C = 1×6
-0.6667 -0.8750 -0.6667 -0.8750 -0.6667 -0.6667
plot(C,'o')
xlabel('No of prosumers')
ylabel('consumption')
  1 件のコメント
Ancy S G
Ancy S G 2022 年 3 月 17 日
Thank you sir

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeAnimation についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by