[討論] 有關矩陣元素存取

看板MATLAB作者時間14年前 (2011/12/22 21:49), 編輯推噓3(307)
留言10則, 3人參與, 最新討論串1/1
程式遇到了一個難以理解的結果,請大家一起來找碴。 定義變數如下: row = 矩陣的列數; xs = 紀錄點的x坐標,為一行向量; ys = 紀錄點的y坐標,為一行向量; 有問題的程式碼如下: img = zeros(255,255); img((xs-1)*row+ys) = 255; figure,imshow(img); 結果白色的像素出現的位置完全不是預期中的結果, 請問我坐標轉換(xs-1)*row+ys這個有錯嗎? 正確的寫法應該是什麼?請大家指教了~ -- 家家是家,到家才是家~道道是道,放下見大道 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.27.132

12/23 09:42, , 1F
試試看 img([xs ys])=255;
12/23 09:42, 1F

12/23 16:58, , 2F
你xs ys座標是以哪為原點? 矩陣是(1 1)為原點
12/23 16:58, 2F

12/23 17:02, , 3F
若xs ys是以(0,0)原點 應該是 (xs+1-1)*row+(ys+1)
12/23 17:02, 3F

12/23 21:38, , 4F
是以(1,1)為原點沒錯,用plot(xs,ys)出來的結果是對的,但
12/23 21:38, 4F

12/23 21:39, , 5F
用(xs-1)*row+ys去做就產生完全不同的結果。
12/23 21:39, 5F

12/23 21:44, , 6F
x y互換看看
12/23 21:44, 6F

12/23 21:46, , 7F
matlab x y 是相反的
12/23 21:46, 7F

12/23 21:48, , 8F
我指的是影像座標
12/23 21:48, 8F

12/23 22:08, , 9F
嗯,這個做法也試過了,還是不得其解呢…有其他可能嗎?
12/23 22:08, 9F

12/23 22:44, , 10F
那就怪了...貼code看看
12/23 22:44, 10F
文章代碼(AID): #1EypLV9n (MATLAB)