How to make a plot using two variables
이전 댓글 표시
If you run this code you'll get graph shows natural frequencies. But i wanna see ten graphics in one figure as a result of changing "m2" value. ı have two matrices, K and M. im trying to change "m2" which is located M matrix. How can i plot natural frequencies with respect to w and m2 in one figure?
clear all
clc
syms k1 k2 w m1 m2 L L1 b b1
m1=1.816;
L=0.735;
G=80000;
dk1=3;
Dk1=44;
s=18;
k1=(G*dk1^4)/(64*s*(Dk1/2)^3)*1000
dk2=2.5;
Dk2=44;
s=18;
k2=(G*dk2^4)/(64*s*(Dk2/2)^3)*1000
m3=4.8;
L1=0.223;
m2=0;
K=[k2,-k2*L;-k2*L,(L^2)*(k1+k2)]
s=1;
A=zeros(20);
for m2=0.4:0.4:4;
s=s+2
M=[m2,0;0,m1*L^2/3+m3*L1^2]
A(s-2:s-1,s-2:s-1) = M
end
sayac=0;
for w=1:1:100
sayac=sayac+1;
umax=((K-M*(w^2))^(-1))*[150;0]
b(sayac)=umax(1);
end
w=1:1:100;
plot(w,b)
xlabel('w [rad/sn] ')
ylabel('X [mm]')
title('Sisteme Ait Doğal Frekans Grafiği')
hold on
댓글 수: 2
Salaheddin Hosseinzadeh
2015년 6월 2일
Hi,
Are you aware of subplot() or hold on, commands?
hold on
subplot
hamit Kenan
2015년 6월 3일
답변 (1개)
Salaheddin Hosseinzadeh
2015년 6월 3일
Hi Hamit,
I don't thin if you have any problem plotting in a loop, you just need to organize your data and address them with an appropriate index, have a loot at the code blow, its part of a code I wrote
for i = 1:size(PSFOffset,2)
figure
for j = 1:size(PSFOffset,1)
subplot(2,1,j)
plot(scaledSegments{j,i})
title(sprintf(['PSF Ofsset: ',num2str(PSFOffset(j,i)), ' PSF length: ',num2str(estimatedWireDiam(j,i)),...
'\nAtten(dB): ', num2str(freqMagNullVal(j,i)),' DeconvRes: ', num2str(deconvResidueFactor(j,i)),...
'\nFuzzy Grade: ',num2str(fuzzyGrade(j,i))]));
end
end
There are two for loops as you see, what you can do is to locate a hold on after the plot command which is located inside a loop and get your graphs plotted.
Let me know if you need further info ;)
카테고리
도움말 센터 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!