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
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
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 Center 和 File Exchange 中查找有关 Surface and Mesh Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!