Matlab的矩阵元素编写注意规范

其实平时一直没有注意这个问题,反而忘记其编写的规范了。

问题是这样的,定义了一个列向量,其中每个元素涉及了计算。写法如下:

f0 = [(x0(1) + 3) * (x0(2)^3 - 7) +18; sin(x0(2) * exp(x0(1)) - 1)];

结果编译时就出现了这个问题:

??? Error using ==> vertcat
CAT arguments dimensions are not consistent.

Error in ==> hw5 at 8
f0 = [(x0(1) + 3) * (x0(2)^3 - 7) +18; sin(x0(2) * exp(x0(1)) - 1)];

这就表示矩阵写错了,里面元素的数目与设定不匹配,行列元素写反导致大小与设定不匹配,行(列)中少了元素等。

估计是写C写惯了,习惯在计算符号后面加空格,但在编写Matlab矩阵是是万万不可的。

原因在于,Matlab编写矩阵时,每一行内的元素之间是可以用空格或逗号隔开。在我的向量中,“+18”前写了一个空格,编译器认为这是正18了,

因此我第一行有2个元素,而第二行只有一个,所以出现那样的错误。

虽然错误很弱白啦,不过一方面以后要注意,另一方面是行元素间尽量用逗号隔开,以免造成误会。

posted @ 2012-12-09 00:00  cwss  阅读(420)  评论(0编辑  收藏  举报