作者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