因為最佳控制期中考的原因,需要用到了以上這幾個東西,因此邊學習之餘,就記下來吧,挺實用的~
1. 多項式相乘~~~ 用到的指令是 conv , for example : (x^2+2x-6)*(2x^2+8x+10)
p=cov([1,2,6],[2,8,10]);
當然若有三個相乘的話, for example:(x^2+2x-6)*(2x^2+8x+10)*(x^3+x+5)
p=conv([1,2,6],conv([2,8,10],[1, ,1,5]));
2.矩陣分割 ~~~ 因為matlab 在矩陣方便是先行後列,所以假設一個 4X4矩陣 M 如下
1 2 3 4
5 6 7 8
9 0 1 2
3 4 5 6
若要分割成新的 2x2的矩陣W
所以W11= 1 2
5 6
w11= m(1:2,1:2) % 先行後列, 所以第一個1:2代表取行的第一個和第二個,第二個1:2就是 取列的第一個和第二個
W12= 3 4
7 8
w12=m(1:2,3:4)
W21= 9 0
3 4
w21=m(3:4,1:2)
W22= 1 2
5 6
w22=m(3:4,3:4)
這樣就可以把4x4矩陣轉換成2x2了.
3. 輸入字串 轉數值~~~ 這個第一次使用是在上影像處理的時候,要輸入將圖片轉角度時用到的
這次作業我是想要自己輸入 2x2 A 矩陣的值,所以就用來試試,我想應該有更好的方法,但是目前我只會這種...這邊指舉範例,詳細內容要看 matlab help,做法如下:
% 輸入二階 A MATRIX 數值
def={'1'} % 其實不知道為什麼要打這行,只知道不打的話就不會成功...
stra=inputdlg('a11','input A matrix',1,def); % inputdlg 就是他的指令,詳細請看matlab help
strb=inputdlg('a12','input A matrix',1,def); % 這個指令是將我們輸入的東西當成字串來看
strc=inputdlg('a21','input A matrix',1,def); %因此下面需要用到一個字串轉數值的指令
strd=inputdlg('a22','input A matrix',1,def);
a11=str2num(stra{1}); % str2num字串種成數值
a12=str2num(strb{1});
a21=str2num(strc{1});
a22=str2num(strd{1});
a=[a11 a12;a21 a22] % 之後我在 asign 到我要的矩陣類型裡面就完成了
我想應該有個可以直接就輸入數值的指令,只是我沒找,下次再找找看吧,不然就不用這麼麻煩了
但是這方法其實應該可以通殺任何要輸入符號數字或字母的程式吧 ^^
沒有留言:
張貼留言