Re: [討論] 函數代值已回收

看板MATLAB作者 (あたしって、ほんとバカ)時間15年前 (2011/04/01 23:50), 編輯推噓3(302)
留言5則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《kuoyfu (大頭)》之銘言: : 小弟假設弄了一個函數 f=@(x1,x2) x1^2+x3^5 : 當我輸入f(x1,x2) 便會跑出值 : 可是今天如果我的x1,x2為一個矩陣 : 也就是說我資料檔可能為一個變數X X=[x1,x2] : 那我一樣要算f(x1,x2)時 : 卻因為格式無法直接打f(X) (無法找到x2值 函數無法計算) : 當然我可以打f(X(1),X(2)) : 可是如果我今天要把整個架構成一個副程式 : 我丟到副程式的變數個數每次都不一樣 : 這樣f(X(1),X(2))好像就不好 : 不知道有沒有板大有相關經驗呢???? 如果要丟到一個 function 的話好像還沒有完全搞定這問題... 當下只有這種爛招... (這是範例) function [fout] = f(x1, x2, x3) % 有一個變數叫 nargin, 可以告訴你有幾個參數進來 if (nargin == 1) % 只做看到一個參數的事 else if (nargin == 2) % 只做看到兩個參數的事 else % 做看到三個參數的事 end end --- 至於要判斷輸入是一個數還是 matrix 那又是另外一個問題了... 每次參數個數都要不一樣也許還要有 varargin 之類的事, 那就更複雜了. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.50

04/02 12:47, , 1F
請問為什麼需要兩個if呢@@? 不可以一次寫完嗎??
04/02 12:47, 1F

04/03 10:09, , 2F
當然可以寫好一點, 這只是隨想隨寫下來的.@@
04/03 10:09, 2F

04/03 15:13, , 3F
@@ 感謝~~我是以為有什麼特別技巧要這樣寫
04/03 15:13, 3F

04/03 15:14, , 4F
不過這nargin真的是很實用的東西 第一次學到
04/03 15:14, 4F

04/18 10:11, , 5F
感謝提供方法 目前我是另外叫一個副程式做字串處理@@
04/18 10:11, 5F
文章代碼(AID): #1DbVHU76 (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1DbVHU76 (MATLAB)