Combine 3 graphics into a single one
조회 수: 6 (최근 30일)
이전 댓글 표시
Hi,
I'm trying to combine 3 graphics into a single one . First, here is my program
function graphique()
global x h f_vec i
h_vec=[0.015625,0.1,0.5];
x=linspace(0.1,2);
for i=1:3
h=h_vec(i);
f = F();
end
plot(x,f_vec)
end
function f=F()
global h x f_vec i
f= 1./(((1-x.^2).^2+h.*x.^2).^(1/2));
f_vec(i)=f;
end
I was expecting that matlab will starts with the first iteration with i=1, associate a value h=0.015625 and call the function f=F(). He calculates f into the second block with the big equation and associate all the values of f to f_vec(1) then come back to the loop "for" with i=2... After doing all 3 iterations, he would get out of the loop and plot a vector f_vec in function of x. But I get an error with f=F() because it seems like having this variable into another function his not for him consider as using it.
Anyway the goal is to get a single window combining 3 graphs. I need help this program was mostly done by a user here and I'm still unable to finish it. Is there a way to use
f_vec
as a storage for all values of the 3 iterations.
댓글 수: 0
채택된 답변
Image Analyst
2017년 1월 22일
Why can't you just take the two lines from your function and put it into the loop.
function graphique()
global x h f_vec i
h_vec=[0.015625,0.1,0.5];
x=linspace(0.1, 2, length(j));
for i=1:3
h=h_vec(i);
f= 1./(((1-x.^2).^2+h.*x.^2).^(1/2));
f_vec(i)=f;
end
plot(x,f_vec)
end
Get rid of the F() function definition. Then you'll have just a single function that does everything your two functions used to do. Be sure to fix linspace() like I did so that it has the same number of elements as h.
댓글 수: 4
Image Analyst
2017년 1월 22일
But you said using global was a required part of the solution. Like they wanted/required you to use it. Anyway, thanks for accepting.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating, Deleting, and Querying Graphics Objects에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
