Re: [運算] function 輸入的判斷

看板MATLAB作者時間13年前 (2012/11/20 21:07), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《JamesChen ( )》之銘言: : 如果 function 是 長得像 : function fval = f(x) : fval = exp(x)*2 : 那丟入的 x 是 scalar 就會傳出 scalar : 是 matrix 就會是 element by elment 的 matrix : 我想問的是如果 function 長得像是 : function fval = f(x) : fval = sum (x*randn(6,1)) : 顯然丟 scalar 還是可以運作 : 但是丟 matrix 程式就會告訴你說矩陣維度不對 (除非剛好對) : 除了重寫function外 有沒有辦法讓他也變成 element by elment 的計算結果呢? : 比如說跟 MATLAB 宣告 if size(x) ~= 1 怎樣怎樣的 : 感謝回答 : 這問題困擾我很久了... : 目前都只能徒法煉鋼 用 for loop 帶入值 斯斯有三種,矩陣相乘有兩種 1. matrix to matrix A[m][n]*B[n][m] or A[J][J]*B[J][J] 2. element to element A[m][n].*B[m][n] = A(i,j)*B(i,j) 但是維度要一樣,這樣才能一個蘿蔔一個坑 施主的問題在於 fval = sum(x*rand(6,1)) 這一行 即使改為 x.*rand(6,1),滿足 element to element operator 但是矩陣A的維度必須是6*1 假設 fval 是設計給二維矩陣A 那要先用 size 讀取 A 之row numbers與column numbers,分別為m,n 再套入 fval = sum(x.*rand(m,n)) 這樣才能滿足施主說的通則(用於2D matrix) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 221.169.218.131
文章代碼(AID): #1Ggu2MMd (MATLAB)
文章代碼(AID): #1Ggu2MMd (MATLAB)