How to correct the code?

2 views (last 30 days)
Ancy S G
Ancy S G on 1 Mar 2022
Commented: Ancy S G on 17 Mar 2022
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 Comment
KSSV
KSSV on 1 Mar 2022
Dimensions of Eg and cons are different....?

Sign in to comment.

Accepted Answer

Arif Hoq
Arif Hoq on 1 Mar 2022
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')

More Answers (0)

Categories

Find more on Animation in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!