看板 MATLAB 關於我們 聯絡資訊
最近在做一個自動選擇程式 我給定一個座標 想從我的圖上抓出圖上座標點的RGB 將RGB轉成double如果RGB跟我給的數字相符就執行的if條件 但是程式似乎看不懂我給的條件 拜託高手相助 load pumpSelectionTable.mat; X=1729; Y=378 R=pumpSelectionTable(Y,X,1); G=pumpSelectionTable(Y,X,2); B=pumpSelectionTable(Y,X,3); if double[R]=0&double[G]=0&double[B]=238; -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.71.4.54 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1530312230.A.B13.html
LiamIssac: error message要秀出來阿 06/30 07:56
qvm8741: 不太懂 是少了else的意思嗎 可以仔細說一下嗎 謝謝 06/30 08:38
sppmg: (R==0 & G==0 & B==238) ,並且 if 沒「;」 06/30 14:15
sppmg: 上面回傳符合logical array,如果要逐一處理就 for n=1:XX 06/30 14:16
sppmg: if (R(n)==0 && ....) 06/30 14:17
qvm8741: 謝謝回答 R,G,B取出的變數是unit8所以有轉double才能相等 06/30 14:45
qvm8741: 我想要R,G,B都等於我指定的值才執行 06/30 14:49
sppmg: 你有試過嗎?首先matlab會幫你轉。再來0對uint和double一樣 06/30 18:03
sppmg: 擔心轉錯就 R == uint8(238) 06/30 18:07
qvm8741: 有喔 如果只有double(R)=0; 程式可以執行 06/30 19:51
qvm8741: 但是double(R)=0&double(G)=0&double(B);三個同時成立就 06/30 19:52
qvm8741: 沒辦法執行會在G的地方出現 06/30 19:55
qvm8741: Unbalanced or unexpected parenthesis or bracket. 06/30 19:55
sppmg: .... 你有沒有仔細想過錯誤訊息是什麼意思。 06/30 23:33
sppmg: 現代化的程式語言,比較數值幾乎都是用 == 非 = 。 06/30 23:36
sppmg: 你 double(R)=0 實際上是產生了一個名為 double 的 array 06/30 23:36
sppmg: whos 一下就知道了。 06/30 23:37
qvm8741: 謝謝你點醒 我把double(R)==0 改成R==0 就解決了 07/01 01:53