[問題] 迴圈與判斷已回收

看板MATLAB作者 (codak)時間16年前 (2009/06/30 21:05), 編輯推噓0(005)
留言5則, 1人參與, 最新討論串1/1
以下的程式是目前小弟完成的部份 clc clear all %%%%%%%%%%---------start---------------%%%%%%%%%%%%%%%%%%% load a.T2 load b.D2 b(:,3) = a(:,2); c = length(a); for i = 1:1:c if i == c+1 break elseif (b(i,2) ~= b(i+1,2)) && n>=3; d1 = b(i-1,2); d2 = b(i-2,2); d3 = b(i-3,2); d = (d1+d2+d3)/3; n = 0; elseif (b(i,2) ~= b(i+1,2)) && n<=2; d1 = b(i-1,2); d2 = b(i-2,2); d = (d1+d2)/2; n = 0; else (b(i,2) ~= b(i+1,2)) && n<=1; d = b(i-1,2); n = 0; end n = n+1 end 假設我的 a 與 b 分別如下 a = 1 2 b = 1 2 2 2 2 2 3 2 3 2 4 3 4 5 5 3 5 5 6 1 6 5 7 2 7 6 8 2 8 7 9 1 9 8 10 1 10 9 最左側的是一樣的可以不必理他, 主要是看第二行, a 是當b的索引, a的前三個是2 第四個是3, 也就是判斷最後一個數字與下一個不同時, 我要將b中對應的最後三個做平均 如果只有二個就做二個的平均, 只有一個就保留. 現在小弟想不出來要計算出現相同次數 的變數要放在那裡, 以及當i值算到第10時,會與第11筆資料比對時要怎麼直接跳到算最後 三筆的值或者保留該數值的算式下. 為了能知道我是在那裡做了運算, 我也必須有一個索 引, 也就是說, 我在"2"的位置算出值, 我要在他的旁也同時顯示. 我不知道要在那一段插 入判斷,請大大幫忙, 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.125.31.64

07/01 08:43, , 1F
i從3開始到十 for裡面用 i-2 或i-1去找前兩個
07/01 08:43, 1F

07/01 08:46, , 2F
至於算出來要放哪要看你自己吧 不要搞錯就好了
07/01 08:46, 2F

07/01 08:54, , 3F
我想你是不知道該怎麼寫一段放值吧 而不是不知道要放哪
07/01 08:54, 3F

07/01 08:56, , 4F
再給一個空矩陣 m=[];在for外面, end前 m = [m; 你要的值]
07/01 08:56, 4F

07/01 08:57, , 5F
小地方可能有點不對 大致是這個意思
07/01 08:57, 5F
文章代碼(AID): #1AIWr_vB (MATLAB)
文章代碼(AID): #1AIWr_vB (MATLAB)