Why will these plots not plot on the same graph?
조회 수: 2 (최근 30일)
이전 댓글 표시
I think that matlab thinks the data has different axes for each plot, even though all the data has the same two axes. I get the data that im plotting from a matrix that I create earlier in the code. The columns are set up in a way that if column x is my x values, column x+1 is my y values, where x is an odd number. If I comment out the red graph, the green is plotted. If I comment out the green and red graph, the blue is plotted.
clc; clear;
load('rpm_kw.mat')
x=1;i=1;
rpmcol=1;
[m,n]=size(rpm_kw);
while rpmcol<=m-3
Astop=1;
conf=0;
while conf==0 %getting set A
if isnan(rpm_kw(Astop,rpmcol)) || isnan(rpm_kw(Astop,rpmcol+1)) %finding length of set A by running until nan
Astop=Astop-1; %location of the last value in set A
spdnpwr(1:Astop,x)=rpm_kw(1:Astop,rpmcol); %writing rpm values for set A
spdnpwr(1:Astop,x+1)=rpm_kw(1:Astop,rpmcol+1); %writing pwr values for set A
conf=1; %confirms set A values have been written to spdnpwr
else
Astop=Astop+1; %Increase Astop (done until NaN is found)
end
end
Bstop=1;
conf=0;
while conf==0 %getting set B
if isnan(rpm_kw(Bstop,rpmcol)) || isnan(rpm_kw(Bstop,rpmcol+1)) %finding length of set B by running until nan
Bstop=Bstop-1; %location of the last value in set B
spdnpwr(1:Bstop,x+2)=rpm_kw(1:Bstop,rpmcol); %writing rpm values for set B
spdnpwr(1:Bstop,x+3)=rpm_kw(1:Bstop,rpmcol+1); %writing pwr values for set B
conf=1; %confirms set B values have been written to spdnpwr
else
Bstop=Bstop+1; %Increase Bstop (done until NaN is found)
end
end
Cstop=Astop+Bstop;
y=1;a=1;b=1;
while y<=Cstop %getting set C
if spdnpwr(a,x)<spdnpwr(b,x+2) %if set A is less than set B, use set A for current set C value
spdnpwr(y,x+4)=spdnpwr(a,x); %rpm
spdnpwr(y,x+5)=spdnpwr(a,x+1); %pwr
a=a+1;
elseif spdnpwr(b,x+2)<spdnpwr(a,x) %if set B is less than set A, use set B for current set C value
spdnpwr(y,x+4)=spdnpwr(b,x+2); %rpm
spdnpwr(y,x+5)=spdnpwr(b,x+3); %pwr
b=b+1;
elseif spdnpwr(a,x)==spdnpwr(b,x+2) %if set B is equal to set A
if spdnpwr(a,x+1)<spdnpwr(b,x+3) %if set A pwr is less than set B, use set A for current set C value
spdnpwr(y,x+4)=spdnpwr(a,x); %rpm
spdnpwr(y,x+5)=spdnpwr(a,x+1); %pwr
a=a+1;
elseif spdnpwr(b,x+3)<spdnpwr(a,x+1) %if set B pwr is less than set A, use set B for current set C value
spdnpwr(y,x+4)=spdnpwr(b,x+2); %rpm
spdnpwr(y,x+5)=spdnpwr(b,x+3); %pwr
b=b+1;
elseif spdnpwr(a,x+1)==spdnpwr(b,x+3) %if set A pwr is equal to set B, use set A for current set C value and set B for next C value
spdnpwr(y,x+4)=spdnpwr(a,x); %rpm
spdnpwr(y,x+5)=spdnpwr(a,x+1); %pwr
spdnpwr(y+1,x+4)=spdnpwr(b,x+2); %rpm
spdnpwr(y+1,x+5)=spdnpwr(b,x+3); %pwr
a=a+1;b=b+1;y=y+1;
else
disp('You mucked up')
end
end
y=y+1;
end
%temp plots
subplot(4,4,i)
plot(spdnpwr(1:Astop,x),spdnpwr(1:Astop,x+1),'b')
plot(spdnpwr(1:Bstop,x+2),spdnpwr(1:Bstop,x+3),'g')
plot(spdnpwr(1:Cstop,x+4),spdnpwr(1:Cstop,x+5),'r')
xlabel('rpm')
ylabel('kw')
i=i+1;
rpmcol=rpmcol+4;
x=x+6;
end
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Source Control에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!