2013-10-14 51 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

那么如何定义一个元素是变量的矩阵呢?无论如何,我找到了一个解决方案,正如我认为的一个新手错误。 –