0
olmalıdır Bir işlev yapmak istiyorum, bir örgü arsa yapıyor olacak. başlangıç x, y; dx, dy ve end x, y bir fonksiyona girilecektir. Bu kodu yaptıkMatlab mesh grafiği. Z için özel işlev. Z bir matris
if x>y
z =x^2-sin(x);
elseif x==y
z = 3;
else
z = 2*x+2*x;
end
: Z orada gibi hesaplanmalıdır
function []= mes(xp,xk,dx,yp,yk,dy)
x=[xp:dx:xk];
y=[yp:dy:yk];
zv=[];
for i=1:numel(x)
if x>y
z=x(i)^2-sin(y(i));
elseif x(i)==y(i)
z=3;
else
z=2*x(i)+2*y(i);
end
zv=[zv z];
end
[X,Y]=meshgrid(x,y);
figure
x
y
zv
mesh(X,Y,zv)
ve bu hata kodları var:
Error using mesh (line 70)
Z must be a matrix, not a scalar or vector.
Error in mes (line 21)
mesh(X,Y,zv)
Denklem z için çalışmak gibi görünüyor. Biliyorum ki, simil problemlerinin benimki gibi birçok cevabı var, ama z için basit bir denklem oluşturduğumda işe yarıyor ama bununla değil.
'zv = reshape (zv, [uzunluk (x) uzunluk (y)])'? –
işlevi [] = mes (xp, xk, dx, yp, yk, dy) x = [xp: dx: xk]; y = [yp: dy: yk]; [x, y] = meshgrid (x, y); zv = []; I = 1: nümerik (x) için x> y z = x (i)^2-sin (y (i)); elseif x (i) == y (i) z = 3; başka z = 2 * x (i) + 2 * y (i); end zv = [zv z]; uç zv = yeniden şekillendirme (zv [uzunluk (x) uzunluğu (y)]) Şekil ağ (ZV) Evet, örgü arsa gösterir, ancak garip, 3d değil bir görünmektedir. @ ander-biguri –
Eğer yardım ederse cevabı kabul eden Cosnider –