Having problem plotting with surfc function
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
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?
Risposta accettata
Image Analyst
il 15 Mag 2018
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 Commenti
Image Analyst
il 15 Mag 2018
Modificato: Image Analyst
il 15 Mag 2018
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]);
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Surface and Mesh Plots in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!