Re: [問題]要給定矩陣中的值一個範圍

看板MATLAB作者 (百善孝為先)時間17年前 (2008/02/15 23:32), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串1/2 (看更多)
※ 引述《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

02/16 12:09, , 1F
真是太感謝你了,這個我真的沒想到,我真還要好好加強
02/16 12:09, 1F
※ 編輯: zxvc 來自: 140.115.204.3 (02/16 14:12)

02/16 14:12, , 2F
抱歉,黃色的地方之前不小心打錯。
02/16 14:12, 2F

02/17 11:18, , 3F
的確.數學上的符號運算跟程式上的差別頗大.
02/17 11:18, 3F
文章代碼(AID): #17jR2KrA (MATLAB)
文章代碼(AID): #17jR2KrA (MATLAB)