Hey guys, I have this code (below) that leads to a plot. My question is how can I increase the size of Zh so my w linspace can have more data points? Right now, it can only do 33 because Zh is a 1x33. Is there any way I can change that? I'm not too advanced in Matlab, so I'm not sure how to increase it.
w_limit = 5*2*pi;
wn = sqrt(k./m);
F_harm = 1;
w = 0;
Zh = 0;
for w = 0:w_limit
r = w./wn;
Ft = k*Y*(r.^2)*(sqrt((1 + ((2*z*r).^2))/(((1-(r.^2)).^2)+((2*z*r).^2))));
F_harm = [F_harm;Ft];
Z = m*(w.^2)*0.0254/sqrt(((k-(m*(w.^2))).^2)+(c*w).^2);
Zh = [Zh Z];
w = w + 0.001;
end
w = linspace(0,5*2*pi,33);
figure(4)
plot(w,Zh)

 채택된 답변

Walter Roberson
Walter Roberson 2020년 12월 6일

1 개 추천

w_limit = 5*2*pi;
5*2*pi is 10*pi which is about 31.4 .
for w = 0:w_limit
that would be 0:31.4-ish which would be 0, 1, 2, 3, ... 29, 30, 31 . That is 32 different iterations.
Zh = 0;
Zh starts out with a 0
Zh = [Zh Z];
Each of those 32 iterations, a new value is put at the end of Zh. Because Zh started with 0, the array will have 32+1 = 33 entries.
Z = m*(w.^2)*0.0254/sqrt(((k-(m*(w.^2))).^2)+(c*w).^2);
With w starting out as 0, the Z entry corresponding to w == 0 will be 0. So when Z is put on the end of the Zh that starts out as 0, the first two entries are going to end up being 0.
w = w + 0.001;
w is your for loop variable. Each iteration of the for loop, any change you made to w at the end of the loop will be ignored, as if you had not changed w (exception: the very last change "sticks")
So the second iteration will not use w of 0.001, and the one after that will not use w of 0.002 -- you are using w = 0:w_limit and that tells it to proceed by integer steps.
If you had used
for w = 0:0.001:w_limit
then your w would change 0.001 at a time.

댓글 수: 1

Tony Vastano
Tony Vastano 2020년 12월 6일
Okay I get it, thank you. I increased it a bit and the plot seems to be much more fluid, as well as the subsequent plots not shown here.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

질문:

2020년 12월 6일

댓글:

2020년 12월 6일

Community Treasure Hunt

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

Start Hunting!

Translated by