pol2cart in loop and pre-allocating

hi all,
how can I put [x,y,z]=pol2cart(theta,rho,z), in tripple loop for different values of heta,rho,z, as well how to pre allocate [x,y,z]?
Regards

 採用された回答

KSSV
KSSV 2020 年 6 月 9 日

0 投票

You need not preallocate (x,y,z) when you use the function.....If you want to run it thrice, you can do the following.
X = cell(3,1) ; Y = cell(3,1);Z = cell(3,1) ;
for i = 1:3
[x,y,z]=pol2cart(theta{i},rho{i},z{i}) ;
X{i} = x ; Y{i} = y ; Z{i} = z ;
end
If all the size of theta, rho, z are same. You can use matrices instead of cells.
N = length(theta) ;
X = zeros(N,3) ; Y = zeros(N,3); Z = zeros(N,3) ;
for i = 1:3
[x,y,z]=pol2cart(theta(:,i),rho(:,i),z(:,i)) ;
X(:,i) = x ; Y(:,i) = y ; Z(:,i) = z ;
end

6 件のコメント

Oday Shahadh
Oday Shahadh 2020 年 6 月 9 日
clear
close all
format long
theta=0:45:360;
rho=0:.5:2;
L=-2:2;
X = cell(3,1) ; Y = cell(3,1);Z = cell(3,1) ;
for i=1:length(L)
for j=1:length(rho);
for k=1:length(theta);
[x,y,z]=pol2cart(theta(k),rho(j),L(i));
X{i} = x ; Y{i} = y ; Z{i} = z ;
end
end
end
figure(1)
plot3(x,y,z);hold on
why can not plot the results?
KSSV
KSSV 2020 年 6 月 9 日
編集済み: KSSV 2020 年 6 月 9 日
clear
close all
format long
theta=0:45:360;
rho=0:.5:2;
L=-2:2;
X = cell(3,1) ; Y = cell(3,1);Z = cell(3,1) ;
figure
hold on
for i=1:length(L)
for j=1:length(rho);
for k=1:length(theta);
[x,y,z]=pol2cart(theta(k),rho(j),L(i));
X{i} = x ; Y{i} = y ; Z{i} = z ;
plot3(x,y,z,'.')
end
end
end
Oday Shahadh
Oday Shahadh 2020 年 6 月 9 日
empty plot also!
Oday Shahadh
Oday Shahadh 2020 年 6 月 9 日
it must be something like the attached plots
KSSV
KSSV 2020 年 6 月 9 日
Check does x, y, z have any values...
Oday Shahadh
Oday Shahadh 2020 年 6 月 9 日
yes there is a values ,it works just in case that insert plot command inside the loop with ('.')
I need to put the plot outside,pls
thanks

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

その他の回答 (1 件)

David Hill
David Hill 2020 年 6 月 9 日

0 投票

No need for loop or for preallocating when you just execute for arrays of theta,rho, and Z.
theta=linspace(0,pi,100);
rho=linspace(0,10,100);
Z = linspace(10,100,100);
[x,y,z]=pol2cart(theta,rho,Z);

カテゴリ

ヘルプ センター および File ExchangePerformance and Memory についてさらに検索

質問済み:

2020 年 6 月 9 日

コメント済み:

2020 年 6 月 9 日

Community Treasure Hunt

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

Start Hunting!

Translated by