[問題] if內的變數出了問題已回收

看板MATLAB作者 (波波龍)時間15年前 (2010/11/30 21:19), 編輯推噓0(0012)
留言12則, 2人參與, 最新討論串1/1
因為剛開始接觸matlab 寫程式時發現問題, 找了很久bug,但一直找不出來 所以提出來問一下版友 for i=1:H-1 for j=1:W-1 a=img_stego(i+1,j); b=img_stego(i,j); c=img_stego(i,j+1); d=img_stego(i+1,j+1); %計算a c的max和min值 if(a>c) temp_max=a; temp_min=c; else temp_max=c; temp_min=a; end temp3=temp_max; temp4=temp_min; if (d==255) temp1=temp_max; temp2=temp_min; if (b<=temp_min) img_cover(i+1,j+1)=temp_max; elseif (b>=temp_max) img_cover(i+1,j+1)=temp_min; else img_cover(i+1,j+1)=a+c-b; end end end end 只要看temp1~4就可以了 照理來說 temp3=temp1 temp4=temp2 可是不知道什麼原因 一進到if這判斷式時 temp3 =/=temp1 temp4 =/=temp2 反而temp1和temp2會相同 我一直找不太出來原因 是我有用法用錯了嗎 -- ξ ○- <(╯ 這 , 就是人生呀。 ■)﹥ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.134.25.125

11/30 22:11, , 1F
當temp_max=temp_min 會有問題吧??
11/30 22:11, 1F

11/30 22:15, , 2F
temp_max=temp_min? 我好像沒打這個
11/30 22:15, 2F

11/30 22:28, , 3F
意思是:當這兩個數值相同時 會有問題吧!!不是你有寫
11/30 22:28, 3F

11/30 22:29, , 4F
我寫的就PO的那些 所以才覺得很怪 因為temp3 4都正確的
11/30 22:29, 4F

11/30 22:30, , 5F
一般來說temp1=3 2=4 但進了if後 值就都變了 才不知錯在哪
11/30 22:30, 5F

11/30 22:31, , 6F
我指的if是 d=255那個 所以才覺得蠻怪的
11/30 22:31, 6F

11/30 22:35, , 7F
if (b<=temp_min) 與 elseif (b>=temp_max) 有範圍重覆
11/30 22:35, 7F

11/30 22:39, , 8F
還有 少一個 end
11/30 22:39, 8F
應該不是if(b...)那裡的問題,因為剛才有測試過,把整段註解掉 只留下if(d=255) end 然後temp1 和temp2都留著 但值一樣不對 您說少一個end是指? ※ 編輯: cbolong 來自: 140.134.25.125 (11/30 22:42)

11/30 22:44, , 9F
if (d==255) 的end 在....??
11/30 22:44, 9F
打文章時不小心刪掉一個end 測試時是有end

11/30 22:45, , 10F
所以才一直不懂 為什麼進到if(d..)時 值都變掉
11/30 22:45, 10F
※ 編輯: cbolong 來自: 140.134.25.125 (11/30 22:48)

11/30 22:48, , 11F
所以 解決你的問題了嗎??
11/30 22:48, 11F

11/30 22:50, , 12F
沒有執行結果 來DEBUG 好累 ==||
11/30 22:50, 12F
這是我的m和圖檔 因為找了很久 一直不明白原因orz ※ 編輯: cbolong 來自: 140.134.25.125 (11/30 22:54) ※ 編輯: cbolong 來自: 140.134.25.125 (11/30 23:46)
文章代碼(AID): #1CzFdHtE (MATLAB)