我不明白什麼是錯我的代碼在這裏MATLAB:繪製在MATLAB兩大功能組成
syms t
x=[1 2 3];
g=t*t;
f=sin(x);
y=compose(g,f);
plot(x,y,'o')
這段代碼我寫的繪製Y = SIN(X)^ 2。正如我不在我的電腦中沒有matlab,所以在Octave在線編譯器上運行它,它給出錯誤'syms' undefined near line 1 column 1
。
如果有人可以幫忙解釋我在代碼中錯在哪裏?
我不明白什麼是錯我的代碼在這裏MATLAB:繪製在MATLAB兩大功能組成
syms t
x=[1 2 3];
g=t*t;
f=sin(x);
y=compose(g,f);
plot(x,y,'o')
這段代碼我寫的繪製Y = SIN(X)^ 2。正如我不在我的電腦中沒有matlab,所以在Octave在線編譯器上運行它,它給出錯誤'syms' undefined near line 1 column 1
。
如果有人可以幫忙解釋我在代碼中錯在哪裏?
它看起來像你沒有安裝符號數學工具箱,所以你不能使用compose
。儘管如此,還是有辦法的。請記住,致電compose(f,g)
時,這兩個功能的組成是這樣的,我們返回f(g(y))
爲f = f(x)
和g = g(y)
。
你可以做的就是用數字來表示,而不依賴於syms
。聲明一個數字時間向量,說...從t = 0
到t = 5
,步長爲0.01
。之後,聲明你自己的函數句柄來計算每個函數。函數句柄或匿名函數是小的單線函數,通常是數學或計算語句,可以接受任意大小的輸入,無論是單個值,矢量還是矩陣,並將該計算語句應用於輸入中的每個值。您用@
符號表示匿名函數,然後在圓括號內指定將組成您要計算的語句的變量。在這種情況下,只有一個變量,我們將其稱爲t
,但它可以是任何變量。
因此,我定義了一個函數g
,它對我們輸入的每個元素執行t^2
。請注意,我必須執行逐個元素的操作。如果我們只是做了t*t
,我應該提供一個向量還是一個矩陣,這將被解釋爲矩陣乘法,這不是你想要的。同樣,我們定義一個匿名函數f
,使得它產生sin(t)
作爲輸出。
有了這些定義,你真正需要做的是:
t = 0 : 0.01 : 5;
g = @(t) t.*t;
f = @(t) sin(t);
y = g(f(t)); %// Composition of the two functions (compose(g,f));
plot(t, y, 'o');
簡單的檢查:你有符號數學工具箱? – 2014-10-09 17:01:10
@ Benoit_11如何檢查它.. – coool 2014-10-09 17:01:55
在命令窗口中鍵入'ver',您將看到計算機上安裝了哪些工具箱 – 2014-10-09 17:02:33