2016-03-05 2 views
0

Я пытаюсь создать 3D-график. Я пытаюсь использовать значения из xvals и yvals для получения значения Z, но я получаю две ошибки. Один из них говорит, что размеры данных должны совпадать, а также сказать, что сетка (X, Y, Z) имеет ошибку при оценке обратного вызова. Любые предложения, чтобы это сделать? СпасибоMatlab, используя meshgrid для создания 3D-графика

 xvals = 1.00:0.1:5.75; 
     yvals = 2.5:0.1:12.5; 
     [X,Y] = meshgrid(xvals,yvals); 

     AB01 = sqrt((-21.6 - X).^2 + (-5.612 - Y).^2); 
     AA0 = 22.269; 
     pivotlength = sqrt(X.^2 + Y.^2); 
     l = AB01-7.5; 
     b = (pivotlength.^2 + AB01.^2 - AA0^2); 
     ee = (2*pivotlength.*AB01); 
     bb= b/ee; 
     thetalmax = acosd(bb); 

     c = (pivotlength.^2 + l.^2 -AA0^2)/(2*pivotlength.*l); 
     thetalmin = acosd(c); 


     Z = thetalmin - thetalmax ; 

     mesh(Y,X,Z); 

ответ

0

У вас возникли проблемы с размерами. Я думаю, что я установил его:

xvals = 1.00:0.1:5.75; 
yvals = 2.5:0.1:12.5; 

[X,Y] = meshgrid(xvals,yvals'); % added ' 

    AB01 = sqrt((-21.6 - X).^2 + (-5.612 - Y).^2); 
    AA0 = 22.269; 
    pivotlength = sqrt(X.^2 + Y.^2); 
    l = AB01-7.5; 
    b = (pivotlength.^2 + AB01.^2 - AA0^2); 
    ee = (2*pivotlength.*AB01); 
    bb= b./ee; % added . 
    thetalmax = acosd(bb); 

    c = (pivotlength.^2 + l.^2 -AA0^2)./(2*pivotlength.*l);% added . 
    thetalmin = acosd(c); 


    Z = thetalmin - thetalmax ; 

    mesh(Y,X,Z); 

НО

you'l теперь получить ошибку, потому что значения Z являются комплексными. Но это проблема начальных значений, я думаю,

Смежные вопросы