2015-02-10 65 views
0

Matlab無法給出以下程序的3D曲面圖.Matlab給出了矩陣形式的所有變量的值。但它不能使用surf命令繪製三維圖形。爲什麼matlab不能在符號變量中使用'surf'命令繪製一個3d圖形?請幫助我....Matlab無法使用「衝浪」命令繪製3D圖形

clear all 
close all 
clc 
syms r 
c=1; 
for R=0.01:0.01:0.03 
    R1(c)=R; 
    j=1; 
    for l=0.3:0.01:0.4 
     l1(j)=l; 
     A=l*exp(-r^2); 
     B=int(A,0,inf); 
     B1(c,j)=B; 
     j=j+1; 
    end 
    c=c+1; 
end 
B1=real(B1) 
surf(R1,l1,B1') 
+1

你有沒有聽說過的[meshgrid(HTTP:/ /se.mathworks.com/help/matlab/ref/meshgrid.html?refresh=true)函數?它創建一個網格,允許您對代碼進行矢量化。在這個特殊情況下,它看起來很奇怪,有一個積分矩陣。那是你要的嗎? – patrik 2015-02-10 07:13:26

+0

@patrik非常感謝你的幫助。但三維圖並未顯示。 – ARIJIT 2015-02-10 07:59:26

+0

我明白這一點,但我擔心這個代碼有更多問題,我們需要逐個攻擊它們。我覺得第一件重要的事就是引導你創建一個函數,主要目的是爲'surf'和'mesh'函數創建一個網格。我認爲通過查看這個功能你會明白'surf'的工作原理。接下來理解爲什麼你計算相同的積分3次,然後用不同的偏移量計算它30次。如果解決了所有可能出現在循環中的索引問題,將會消失。符號問題仍然存在,雖然... – patrik 2015-02-10 09:46:28

回答

0

你只需要這三個行內最後end之後添加:

B1=double(B1)    % Converts from symbolic to numerical 
[X ,Y]=meshgrid(R1,l1);  % Creates a grid that is R1,l1 size, repeated 
surf(R1,l1,B1')    % plot! 

enter image description here

+0

是啊!這樣可行。非常感謝你的寶貴tym和你的幫助。非常感謝你 – ARIJIT 2015-02-10 09:33:16

+1

@ARIJIT如果有幫助,請接受答案;) – 2015-02-10 09:45:07