精華區beta MATLAB 關於我們 聯絡資訊
※ 引述《lestelle (希望永遠是晴天)》之銘言: : 請問各位高手, : 我要在一個矩陣中,讓它的值介於一個範圍 : 例如 一個矩陣 a =[120 222 21 105 99] : 要令它變成另一個矩陣 a=[3 5 1 3 2] : 判斷式如: a(a<=50) ==1; : a(50<a<=100) ==2; : a(100<a<=150) ==3; : a(150<a<=200) ==4; : a(200<a<=250) ==5; : 但是這個程式跑出來的答案是5,也就是 a= [5 5 5 5 5] : 請問各位高手我該怎麼改寫呢? 請改成這樣: a =[120 222 21 105 99] a(a<=50)=1; a(50<a & a<=100)=2; a(100<a & a<=150)=3; a(150<a & a<=200)=4; a(200<a & a<=250)=5 要用「程式碼」指定一個範圍不能用「數學上的範圍」表示法, 因為它們的意義是不相同的。 50<a<=100程式碼的意義是,先作50<a,然後得到一個邏輯向量, 0代表該元素不大於50、1代表該元素大於50。 然後邏輯向量再作<=100的比較,然後得到一個邏輯向量(全為1,因為0<=100、1<=100), 所以這並不是你要的結果。 總之,要知到「程式語言」與「數學語言」並不是都是一致的。 -- 西方三聖:http://p8.p.pixnet.net/albums/userpics/8/3/553683/1193661731.jpg
《佛說阿彌陀經》http://web.cc.ncu.edu.tw/~93501025/amtf.doc 《觀世音菩薩普門品》http://web.cc.ncu.edu.tw/~93501025/pmp.doc -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.204.3
lestelle:真是太感謝你了,這個我真的沒想到,我真還要好好加強 02/16 12:09
※ 編輯: zxvc 來自: 140.115.204.3 (02/16 14:12)
zxvc:抱歉,黃色的地方之前不小心打錯。 02/16 14:12
zupo:的確.數學上的符號運算跟程式上的差別頗大. 02/17 11:18