作者zxvc (百善孝為先)
看板MATLAB
標題Re: [問題]要給定矩陣中的值一個範圍
時間Fri Feb 15 23:32:33 2008
※ 引述《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
1F:推 lestelle:真是太感謝你了,這個我真的沒想到,我真還要好好加強 02/16 12:09
※ 編輯: zxvc 來自: 140.115.204.3 (02/16 14:12)
2F:→ zxvc:抱歉,黃色的地方之前不小心打錯。 02/16 14:12
3F:推 zupo:的確.數學上的符號運算跟程式上的差別頗大. 02/17 11:18