Saving Loop Values to Array with Non-Integer Index

조회 수: 1 (최근 30일)
Phillip Gyasi-Agyei
Phillip Gyasi-Agyei 2020년 5월 5일
댓글: Phillip Gyasi-Agyei 2020년 5월 6일
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일
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
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개)

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by