「matlab if else範例」的推薦目錄:
matlab if else範例 在 大象中醫 Youtube 的精選貼文
matlab if else範例 在 大象中醫 Youtube 的精選貼文
matlab if else範例 在 MATLAB 程式設計入門篇二維平面繪圖 的推薦與評價
MATLAB 程式設計:遞迴函式. 排序. 氣泡排序法(bubble sort) ... if( mod(n, 2)==0 ). medianNum = ( vec(n/2) + vec(n/2+1) ) / 2;. else ... 遞迴- 範例. ... <看更多>
matlab if else範例 在 Matlab Lab Code - gists · GitHub 的推薦與評價
以下所有題目皆限定用MATLAB作答,各題除了題目外附上初始的程式 ... b ) if a > b; d = gcd_by_euclid(b, a); elseif a == 0; d = b; else d ... ... <看更多>
matlab if else範例 在 Re: [問題] 利用遞迴函式產生數列- 看板MATLAB - 批踢踢實業坊 的推薦與評價
※ 引述《drummerworld (Donkin??Donkey)》之銘言:
: 最近小弟突發奇想一個問題,透過遞迴函數,
: 試著想把任一長度,用任意兩數之間所有的數
: (含這任意兩數)。
: 產出所有的排列組合,以下為範例:
: 假設長度為5,任意兩數為1和4。
: 產出的情況是:
: 1,1,1,1,1
: 1,1,1,1,2
: 1,1,1,1,3
: 1,1,1,1,4
: 1,1,1,2,1
: .
: .
: 1,1,1,2,4
: 1,1,1,3,1
: .
: .
: .
: 1,4,4,4,4
: 2,1,1,1,1
: .
: .
: .
: 4,4,4,4,4
: 以下我所想的程式如下:
: function T = a(start,end_num,space,tmp,big_T,round)
: %start: 起始值 (如範例中的1)
: %end_num : 終止值(如範例中的4)
: %space : 陣列長度(如範例中的5)
: %tmp : 寫入暫時陣列。把目前一整列的執行結果寫入這暫時陣列(input為[])
: %big_T : 一個大表格,每一行代表著暫時陣列。執行完結果回傳這整張表格(input為[])
: %round : 回合數。用來判斷目前在該陣列的那一個段落(input為1)
: if( round <= space )
: for i=start : end_num
: if ((round==1)&&(isempty(big_T)))
: T = a(start,end_num,space,[tmp i], big_T ,(round+1));
: round = round -1 ;
: else
: T = a(start,end_num,space,[tmp i], T ,(round+1));
: round = round-1;
: end
: end
: elseif (round==(space+1)) %終止條件
: big_T = [big_T;tmp];
: T = big_T;
: end
: 用意是希望最後把所有的情況塞在大表格中,並以這表格做為結果回傳。
: 不過以 T = a(1,3,4,[],[],1)做為測試,結果是
: ??? Undefined function or variable "T".
: 因此想請問板上大大們可否麻煩指出小弟哪裡的邏輯有錯
用遞迴來寫matlab不太好,因為:
1. 效能不張
function out = recursive(in)
if in == 1
out = 1;
else
out = in * recursive(in-1);
end
end
tic, recursive(300);, toc
tic, prod(1:300);, toc
你比較一下速度就知道了,
原因似乎是matlab沒有做TCO,可參考:
https://stackoverflow.com/questions/5326749/does-matlab-perform-tail-call-optim
ization
2. 要冒著當掉或是卡住的風險
你可以輸入 get(0, 'RecursionLimit') 來看看你預設的最大遞迴階層,
若你的程式所需要的遞迴數太接近很容易當掉。
建議您的程式可改成:
dec2base(0:4^5-1, 4) - double('0') + 1
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.67.57.147
... <看更多>