Surf Plot using loops- Z must be a matrix, not a scalar or vector.
Mostra commenti meno recenti
Hello everyone,
I'm trying to plot a surface with the following code, but I keep getting this error. I don't know how to solve this, could someone help me?
Thanks in advance.
clear all;
% Welding parameters
%----------------------------
U = 28; %Voltage (V)
I = 260; %Current (A)
n = 0.9; %Efficiency
Q = U*I*n;
% Goldak Double-ellipsoid
%------------------------
a = 5;
b = 6;
C1 = 5;
C2 = 20;
FF = 0.6;
FR = 1.4;
x = [-10:.2:10];
y= 0;
for z = -15:.05:15
if z < 0
C = C1;
F = FF;
else
C = C2;
F = FR;
end
end
[xx,zz] = meshgrid(x,z);
A = ((6*sqrt(3)*F*Q)/(a*b*C*pi*sqrt(pi)));
B = exp(-3*(xx.^2/a.^2)).*exp(-3*(zz.^2/C.^2));
q = A*B;
surf (xx,zz,q)
Error using surf (line 57)
Z must be a matrix, not a scalar or vector.
Error in Goldak2 (line 34)
surf (xx,zz,q)
1 Commento
KSSV
il 20 Giu 2017
In your code z is a scalar, to use surf after meshgrid z should be matrix and a vector respectively.
Risposta accettata
Più risposte (1)
Mechrod
il 29 Giu 2017
0 voti
Do you have a picture of what you are trying plot? So we now what are the dimensions a, b, c1, c2 and etc.
Categorie
Scopri di più su Loops and Conditional Statements in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!