[討論] if 句和文字搭配問題

看板MATLAB作者 (屌哥大蛋捲)時間6年前 (2018/09/09 15:30), 6年前編輯推噓8(8018)
留言26則, 5人參與, 6年前最新討論串1/1
各位強者好 小弟不才在if句判斷上遇到了一些問題,希望有好心人士可以指導QAQ CLC CLEAR A=[1;2;3;4;5;6]; If a(:,1)==2 a(:,2)==(‘是’); end 我想做些資料上的判斷,如果A裡頭的值有2,則在他旁邊的位置放入’是’ 之後可能會在不是2的值旁放入’不是’ 但試了好久就是不知道哪邊有問題 求好心人士指點QAQ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.48.127 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1536478226.A.020.html ※ 編輯: ggyy338 (223.137.48.127), 09/09/2018 15:30:43

09/09 15:33, 6年前 , 1F
不能這樣寫 首先A是數字 不能放文字進去 還有A和a是不同
09/09 15:33, 1F

09/09 15:33, 6年前 , 2F
的 最後if a(:,1)==2 那你到底是想要比A的哪個元素?外面
09/09 15:33, 2F

09/09 15:34, 6年前 , 3F
應該要加個for迴圈然後改成A(i,1)==2 之類的
09/09 15:34, 3F

09/09 15:36, 6年前 , 4F
大大您好A和a是筆誤,請問這個問題有需要用到迴圈嗎?
09/09 15:36, 4F

09/09 16:03, 6年前 , 5F
這個時候用{ }吧,可以同時儲存不同類型的資料。 然後
09/09 16:03, 5F

09/09 16:03, 6年前 , 6F
用個for 去存資料
09/09 16:03, 6F

09/09 17:09, 6年前 , 7F
要是我的話會這樣寫: A=[1;2;3;4;5;6];
09/09 17:09, 7F

09/09 17:10, 6年前 , 8F
Astr=cell(size(A)); Astr(A==2)={'是'};
09/09 17:10, 8F

09/09 17:10, 6年前 , 9F
Astr(A~=2)={'不是'} 總之文字和數字不要存同一個
09/09 17:10, 9F

09/09 17:11, 6年前 , 10F
或者 反正你只要判定是不是2 文字只有'是'或'不是' 那乾
09/09 17:11, 10F

09/09 17:11, 6年前 , 11F
脆用1和0代表就好 1就是'是' 0就是'不是' 這樣連文字都
09/09 17:11, 11F

09/09 17:11, 6年前 , 12F
不需要 而1或0這種邏輯數字有時運算上也很方便
09/09 17:11, 12F

09/09 19:27, 6年前 , 13F
同樓上p大,0/1可用 true / false 。除 cell 外也可用 str
09/09 19:27, 13F

09/09 19:27, 6年前 , 14F
uct 增加可讀性。然後大寫問題,除了特定指令及變數,請一
09/09 19:27, 14F

09/09 19:27, 6年前 , 15F
律小寫。
09/09 19:27, 15F

09/09 20:33, 6年前 , 16F
了解了,感謝樓上各位大大!但有辦法左行都是數值,下一
09/09 20:33, 16F

09/09 20:33, 6年前 , 17F
行都是判定的文字或是值嗎,有點像1 是
09/09 20:33, 17F

09/09 20:33, 6年前 , 18F
2 不是
09/09 20:33, 18F

09/09 21:17, 6年前 , 19F
你硬要這樣玩?那就這樣吧:A0=[1;2;3;4;5;6];
09/09 21:17, 19F

09/09 21:17, 6年前 , 20F
A=num2cell(A0); A(A0==2,2)={'是'}; A(A0~=2,2)={'否'}
09/09 21:17, 20F

09/09 21:34, 6年前 , 21F
大大,請收下我的膝蓋和容我叫你一聲大神
09/09 21:34, 21F

09/09 21:35, 6年前 , 22F
還是比較建議你用1和0
09/09 21:35, 22F

09/09 21:41, 6年前 , 23F
沒問題的,我會在試著用數字看看,若後續的計算還有問題
09/09 21:41, 23F

09/09 21:41, 6年前 , 24F
,還麻煩您指點了!!
09/09 21:41, 24F

09/10 05:28, 6年前 , 25F
a = [a, a==2]
09/10 05:28, 25F

09/10 14:54, 6年前 , 26F
對的 用1/0的話就像樓上這樣一句就搞定
09/10 14:54, 26F
文章代碼(AID): #1RbCmI0W (MATLAB)
文章代碼(AID): #1RbCmI0W (MATLAB)