瘦子 發問時間: 電腦與網際網路程式設計 · 1 0 年前

有關MATLAB的變數呼叫

請問要如何在主程式中呼叫副程式內的變數??

我在副程式中宣告global X

但在主程式中執行偵錯時卻出現"??? Undefined function or variable 'z'."

請問該怎麼宣告呢?(我是MATLAB新手>"<)

已更新項目:

註:我是將主程式和副程式分成兩個M檔案

2 個已更新項目:

我後來修改了一下,可是還是不能跑

-----------------------------------------------

副程式如下:

function func_a(x,y)

global z;

for i = 1:10

z(i) =x(i).^2 + y(i);

end

3 個已更新項目:

主程式如下:

function main_a(x_init,x_final,y_init,y_final)

x = linspace(x_init,x_final,10);

y = linspace(y_init,y_final,10);

for i = 1:10

z(i) = func_a(x(i),y(i));

end

[xx,yy,zz] = meshgrid(x,y,z);

mesh(xx,yy,zz)

4 個已更新項目:

It works!

謝謝!

1 個解答

評分
  • Chaos
    Lv 7
    1 0 年前
    最佳解答

    請將兩個程式附上,以便解答

    2008-09-09 00:23:41 補充:

    不知道你為何需要用global,其實程式改寫為如下即可

    function z=func_a(x,y)

    z=x.^2 + y;

    end

    你的錯誤是因為主程式Z與副程式的global z 混淆了

    主程式也可簡化為

    function main_a(x_init,x_final,y_init,y_final)

    x = linspace(x_init,x_final,10);

    y = linspace(y_init,y_final,10);

    z = func_a(x,y);

    end

    [xx,yy,zz] = meshgrid(x,y,z);

    mesh(xx,yy,zz)

    參考資料: 教學經驗
還有問題?馬上發問,尋求解答。