Hi All,
I'm trying to save the results of the iteration loop to an array for plotting, "r" and "x" specifically. My issue is that I can't figure out what to use as an index. My code is below, PLEASE HELP!
R = 0.6;
b = 0.1;
ro = R*b;
a = asind(b);
function [pl] = Geodesic(R, b, ro, a)
% This function plots a geodescic contour
% Initial Conditions
w = 0;
r = R;
x = 0;
Dr = 0;
Dx = 0;
Dw = 1;
hold on
for w = 0:Dw:90
rm = r / ( cosd(w) * (2-tand(a).^2) );
r(w) = r - Dr;
x(w) = x + Dx;
a = asind(ro/r);
Dx = rm * Dw*cosd(w);
Dr = rm * Dw * sind(w);
pl = plot(r(w),x(w),'k.');
title('Geodesic Dome Contour');
xlabel('Distance From Center');
ylabel('Y Position');
end
end

 採用された回答

KALYAN ACHARJYA
KALYAN ACHARJYA 2020 年 5 月 5 日
編集済み: KALYAN ACHARJYA 2020 年 5 月 5 日

0 投票

Make the r and x as output arguments in the function
function [pl,r,x] = Geodesic(R, b, ro, a)
% This function plots a geodescic contour
% Initial Conditions
w = 0;r = R;x = 0;Dr = 0;Dx = 0;Dw = 1;
hold on
for w = 0:Dw:90
rm = r / ( cosd(w) * (2-tand(a).^2) );
r(w) = r - Dr;
x(w) = x + Dx;
a = asind(ro/r);
Dx = rm * Dw*cosd(w);
Dr = rm * Dw * sind(w);
pl = plot(r(w),x(w),'k.');
title('Geodesic Dome Contour');
xlabel('Distance From Center');
ylabel('Y Position');
end
end
Now r and x will be reflected in workspace, now please do whatever you want

3 件のコメント

Phillip Gyasi-Agyei
Phillip Gyasi-Agyei 2020 年 5 月 5 日
Thank you for responding Kaylan!
The output displays final values instead of all iterations, how do you think I should proceed?
KALYAN ACHARJYA
KALYAN ACHARJYA 2020 年 5 月 5 日
編集済み: KALYAN ACHARJYA 2020 年 5 月 5 日
Its the array, in each iteration generates single x and r values, it reflected as an array
%Like x=[6 7 9 -0........]
Modifications
function [pl,r,x] = Geodesic(R, b, ro, a)
% This function plots a geodescic contour
% Initial Conditions
w= 0;r(1)=R;x(1)= 0;Dr = 0;Dx = 0;Dw = 1;
hold on
for w = 2:Dw:90
rm = r(w-1)/ ( cosd(w) * (2-tand(a).^2) );
r(w) = r(w-1) - Dr;
x(w) = x(w-1) + Dx;
a = asind(ro/r(w));
Dx = rm * Dw*cosd(w);
Dr = rm * Dw * sind(w);
end
plot(r,x,'k.');
title('Geodesic Dome Contour');
xlabel('Distance From Center');
ylabel('Y Position');
end
Phillip Gyasi-Agyei
Phillip Gyasi-Agyei 2020 年 5 月 6 日
Thank you Kalyan! It's working now!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Matrix Indexing についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by