Having problem plotting with surfc function

1 次查看(过去 30 天)
phi21 = linspace(-Tn,Tn,ns);
phi31 = linspace(-Tn,Tn,ns);
Tn=100;
ns=30;
P1=0;
alpha = 0;
beta = 0;
gama = 0;
[phi_21,phi_31] = meshgrid(phi21,phi31);
n=0;
for n=1:(2*n-1):21
P1(n)=(k12.*cos(alpha*pi*n/360).*cos(beta*pi*n/360).*sin(phi_21*pi*n/180))+(k13.*cos(alpha*pi*n/360).*cos(gama*pi*n/360).*sin(phi_31*pi*n/180))
P1=P1+P1(n);
end
surfc(phi_21,phi_31,P1); colorbar;
I would like to surfc plot of equation P1 with respect to phi_21 and phi_31 upto 21st harmonic where n=1,3,5,7... this shows a dimension error like this "The surface Z must contain more than one row or column". Could anyone please help me with this?

采纳的回答

Image Analyst
Image Analyst 2018-5-15
You need to define Tn, ns, k12, and k13. Then get rid of the for loop.
% Guess at values.
Tn = .5;
ns = 100;
k12=4;
k13 = 3;
phi21 = linspace(-Tn,Tn,ns);
phi31 = linspace(-Tn,Tn,ns);
Tn=100;
ns=30;
P1=0;
alpha = 0;
beta = 0;
gama = 0;
[phi_21, phi_31] = meshgrid(phi21, phi31);
n = phi_21;
P1=(k12.*cos(alpha*pi*n/360).*cos(beta*pi*n/360).*sin(phi_21*pi*n/180))+...
(k13.*cos(alpha*pi*n/360).*cos(gama*pi*n/360).*sin(phi_31*pi*n/180));
surfc(phi_21,phi_31,P1, 'EdgeColor', 'none');
colorbar;
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);
  5 个评论
Image Analyst
Image Analyst 2018-5-15
编辑:Image Analyst 2018-5-15
What values do you have for k12 and k13?
Try this:
% Guess at values.
Tn=100;
ns=30;
k12=4;
k13 = 3;
phi21 = linspace(-Tn,Tn,ns);
phi31 = linspace(-Tn,Tn,ns);
Tn=100;
ns=30;
alpha = 0;
beta = 0;
gama = 0;
[phi_21, phi_31] = meshgrid(phi21, phi31);
P = zeros(size(phi_21));
for n = 1 : 21
thisP=(k12.*cos(alpha*pi*n/360).*cos(beta*pi*n/360).*sin(phi_21*pi*n/180))+...
(k13.*cos(alpha*pi*n/360).*cos(gama*pi*n/360).*sin(phi_31*pi*n/180));
P = P + thisP;
subplot(5, 5, n);
surfc(phi_21,phi_31, thisP, 'EdgeColor', 'none');
drawnow;
end
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);
% Plot the sum of all the P's
figure;
surfc(phi_21,phi_31,P, 'EdgeColor', 'none');
colorbar;
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Surface and Mesh Plots 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by