matlab中輸入x. 與x的區別


參考:http://www.madio.net/thread-27742-1-1.html

點乘的話,是對應元素相乘。 
沒點的話,按照矩陣相乘法則進行,這就要求前一個矩陣的列數等於第二個矩陣的行數。

向量也是一樣,兩個向量之間沒有乘法(只有內積和外積,有專門的函數),因此諸如a*b是不合法的;但只要他們的維數一樣,就可以進行對應元素之間的運算,因此a.*b、a./b或a.^2等等都是是可以的。 

另外,單獨元素與矩陣(向量)之間的運算可以加點,也可以不加。如2*A和2.*A是等價的。

下面是畫函數曲線的例子。 

要畫函數y=x^2,x屬於[-2,2]之間的函數圖像。 
首先定義x=-2:.1:2; 
注意這樣就產生了一個向量x,因此諸如x^2是不合法的。正確的寫法是 
y=x.^2;表示y中的每個元素都是x中對應元素的平方。 
最后就可以畫了plot(x,y); 
plot函數是將x和y兩個向量的對應元素作為坐標,然后依次連接產生圖像。 

當然我們也可以用ezplot產生圖像 
但注意ezplot所輸入的參數是符號,不是矩陣或向量。 
syms x;這里定義了符號變量x 
ezplot(x^2) 
因為x是單個的符號,不是向量或矩陣,也就是說他就是一個單獨的元素。所以不用加點,直接平方就可以了。 
當然如果寫成x.^2也可以,就和3^2和3.^2一樣,因為單個元素對應點平方和直接平方是等價的。 

但是請注意,並不是符號變量就沒有點運算。比如 
syms a b c d; 
[a b]*[c d]是沒有意義的,因為此時[a b]和[c d]都是向量(雖然里面的元素是符號變量),可以認為是符號元素組成的向量或矩陣。 
但[a b].*[c d]是有意義的,表示[a*c b*d]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM