I have a function returning a 3x1 vector. I now want to plot three graphs for these three outputs.
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Karim El Ghamrawi
am 21 Okt. 2014
Kommentiert: Karim El Ghamrawi
am 21 Okt. 2014
Here is my function:
function [ T] = inlamning1( F, m, l )
%Ax = b, A = alla skalärer framför T1,T2,T3 i de tre ekvationerna.
%T = [T1, T2, T3]
%b = skalärerna mg och F
A = [cosd(30), cosd(30), cosd(45); -1*sind(30), sind(30), sind(45); 10*cosd(30), 0, -1*cosd(45).*l];
b = [F*cosd(45)+ m*9.81; -1*F*sind(45) ; -1*F*cosd(45)*10];
T = A\b;
I now want to draw three diffrent graphs showing how T1, T2 and T3 differs for different values of l (l = linspace(5,10))
How can i do that?
1 Kommentar
John D'Errico
am 21 Okt. 2014
Please use the code formatting button to make your code readable. Select the block of code, then click on the {}Code button.
Next, it is a terrible idea to use the lower case letter l as a variable name. Far too often it will be confused with the number 1, thus 1 versus l. Of course, if your goal is to obfuscate your code completely, making it impossible to read and debug ever, even for you, then use only variable names composed of a jumble of the letters O and l, and the numbers 0 and 1.
Akzeptierte Antwort
Ced
am 21 Okt. 2014
Bearbeitet: Ced
am 21 Okt. 2014
Hi
Maybe I'm missing something, but you want to run the function for each value of linspace(5,10) and plot them? Then that's exactly what you should do.
Your script "run_inlamning1.m" (or whichever name you prefer) might then look something like:
% define parameters
F = 1;
m = 1;
Ivec = linspace(5,10);
N = length(Ivec); % 100 by default
% initialize matrix to save results
T_all = zeros(3,N)
% compute all values
for i = 1:N
T_all(:,i) = inlamning1(F,m,Ivec(i));
end
% plot
plot(Ivec,T_all);
xlabel('Ivec');
legend('T1','T2','T3')
In case you're not aware of this: You can get help for all matlab functions by typing "help functionname", e.g. "help plot" directly in matlab. Or "doc plot" for a more extensive help with examples, etc.
Cheers
EDIT Note: if you want T1, T2, T3 to be in different plots, just type "figure" before each plot so the previous one does not get overwritten. You may also want to have a look at "subplot", e.g. subplot(1,3,1) would let you have the three plots side-by-side.
PS: Use the "Code" button when you want to insert code, otherwise it's hardly legible.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu 2-D and 3-D Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!