2013-10-14 135 views
0

我有一個標量輸出的矩陣函數,我想將其作爲矩陣元素之一的函數繪製。確切的功能並不重要,所以我將使用det我的例子:矩陣函數的繪圖輸出

>> fplot(det([x 0;0,1]),[0,1000]) 
Error using vertcat 
CAT arguments dimensions are not consistent. 

或者:

>> x=linspace(0,1000,1001); 
>> plot(det([x,0;0,1])) 
Error using vertcat 
CAT arguments dimensions are not consistent. 

我敢肯定,這是簡單的,而那裏只是其中谷歌搜索一個不是招絕招沒有透露。

回答

1

這是可能的(因爲我知道它會是)使用fplot。但命令必須是fplot('det([x,0;0,1])',[0,1000])(注意引號)。其實我的古(MATLAB 5)紙質手冊說:

「使用fplot最常見的錯誤(以及其他數值 分析功能)被遺忘在 報價也就是把函數的名稱fplot需要知道函數的名稱作爲 字符串」

2
x=linspace(0,1000,1001); 
plot(det([x,0;0,1])) 

這是一個問題:[x,0;0,1]

因爲x具有1001個元素,以便你的頂行(即[x,0])是1002個元素和您的底部行僅有2的元素。並且您試圖垂直連接它們,即[;]運營商。這僅適用於兩行具有相同列數的行。

我不確定你想要繪製什麼,所以我不能推薦一個修復,你必須首先解釋一下這個問題。

+0

由於丹,我想要繪製'DET(M)''對x',使用'M = [X 0 0 ,1]'。我並不特別想要一個x的所有值的數組,但這似乎是matlab如何爲這個圖繪製數據。我的實際功能比較複雜,但是'det'顯示了我的問題,這是一個簡單的顯示/詢問方式。 –

+0

@ChrisH但正如我在我的解決方案中所解釋的那樣,'M = [x,0; 0,1]'在Matlab中沒有意義(除非'x'是一個標量)。你究竟是什麼意思? – Dan

+0

那麼如何定義一個元素是變量的矩陣呢?無論如何,我找到了一個解決方案,正如我認爲的一個新手錯誤。 –