Getting blank plot in MATLAB
36 views (last 30 days)
Show older comments
Hi, could I know where I might be wrong in the following code as Im getting blank graph. The parameter vel and acc are time dependent which in turn Fh is function of time.
function [Fh] = hydro(t)
Cd = 0.6;
Ca = 0.9699;
R = 4.7;
for t=0:0.1:10
vel = compute_wavevelocity(t)
acc = compute_waveacceleration(t)
fun = sym((0.5*997*Cd*2*R*abs(vel)*vel)+(Ca*997*pi*(R^2)*acc)+(pi*(R^2)*997*acc));
Fh(t==0:0.1:10) = eval(int(fun,0,-120));
end
plot(t,Fh), xlabel('time(s)'), ylabel('Fh')
title ('Fh vs Time')
end
4 Comments
Image Analyst
on 14 Jul 2020
Do you really even need symbolics? Or could you do it numerically, something like this:
Cd = 0.6;
Ca = 0.9699;
R = 4.7;
all_t=0:0.1:10
for k = 1 : length(all_t)
t = all_t(k);
vel = compute_wavevelocity(t)
acc = compute_waveacceleration(t)
fun = (0.5*997*Cd*2*R*abs(vel)*vel)+(Ca*997*pi*(R^2)*acc)+(pi*(R^2)*997*acc);
Fh(k) = fun;
end
plot(all_t,Fh), xlabel('time(s)'), ylabel('Fh')
title ('Fh vs Time')
Answers (1)
Cris LaPierre
on 14 Jul 2020
This is because t is a scalar. When you plot, it has the value it was assigned on the last loop of the for loop: 10.
Try changing the x input in your plot command:
plot(0:0.1:10,Fh)
13 Comments
Cris LaPierre
on 15 Jul 2020
These appear to be new questions. I suggest creating a new post for each.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!