How to have a function return a coordinate point?
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I am trying to get a function to return (x,y) coordinates for a given angle theta. I am struggling to figure out how to get the output of the function to be coordinate points and not two seperate variables x and y.
This is what I have for the function:
function [x,y] = unitCircle(theta)
[x,y] = [cos(theta),sin(theta)]
end
And when I call the function using:
[x,y] = unitCircle(pi/4)
I get an error:
Too many output arguments.
Error in unitCircle (line 2)
[x,y] = [cos(theta),sin(theta)]
1 Kommentar
Akzeptierte Antwort
Torsten
am 12 Feb. 2023
[x,y] = unitCircle(pi/4)
function [x y] = unitCircle(theta)
z = [cos(theta),sin(theta)];
x = z(1);
y = z(2);
end
4 Kommentare
Sulaymon Eshkabilov
am 12 Feb. 2023
This function file syntax has to be:
theta = -pi:.1:pi;
[x,y]=unitCircle(theta)
function [x y] = unitCircle(theta)
z = [cos(theta);sin(theta)];
x = z(1,:);
y = z(2,:);
end
Weitere Antworten (1)
Sulaymon Eshkabilov
am 12 Feb. 2023
Here is the corrected code:
% Ver 1
xy = unitCircle(pi/4)
function xy = unitCircle(theta)
xy=[cos(theta); sin(theta)];
end
1 Kommentar
Sulaymon Eshkabilov
am 12 Feb. 2023
Alt. version:
% Ver 2
theta = linspace(-2*pi, 2*pi);
xy=unitCircle(theta);
plot(xy(1,:), xy(2,:)), axis equal;
xlabel("x"), ylabel("y"), grid on
function xy = unitCircle(theta)
xy(1,:)=[cos(theta)];
xy(2,:)=[sin(theta)];
end
Siehe auch
Kategorien
Mehr zu Logical 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!
