如何实现matlab中矩阵的查找功能?
1、实现方法
使用find()函数:[m,n]=find(A==x)
2、解析
A==x:将矩阵A的每个元素与x比较,如果相等,相应位置的元素就等于1,否则为0。
find(X):返回X中非零元素的索引(即行列位置)。
3、实例演示:找出矩阵A中所有等于3的元素的行列位置
打开matlab,在命令窗口运行如下代码:
>> A=[1 2 3 4 5;6 7 3 1 2]
>> [m,n]=find(A==3)
从运行结果可知,找到A中元素3的位置为:第1行第3列 和 第2行第3列。
绛旓細A=randn(4)+1 B=sort(A(find(A>1)))A = 1.7283 2.0378 2.5532 2.8645 3.1122 0.6102 1.7079 0.6602 -0.3573 -0.3813 2.9574 -0.1398 -0.0226 1.3155 1.5045 0.7889 B = 1.3155 1.5045 1.7079 1.7283 2.0378 2.5532 2.8645 ...
绛旓細A = [16 15 14 15 4 13 8 12 10 8 10 3 8 1 13 7][ia,ib,v] = find(A(:,2)==8) % 鍦 A 鐨绗 2 鍒楋紙A(:,2)锛夋壘 8 鐨勪綅缃瓵 = 16 15 14 15 4 13 8 12 10 8 10 3 8 1 13...
绛旓細涓銆鐭╅樀鐨琛ㄧず鍦∕ATLAB涓鍒涘缓鐭╅樀鏈変互涓嬭鍒欙細1銆佺煩闃靛厓绱犲繀椤诲湪鈥漑 ]鈥濆唴锛2銆佺煩闃电殑鍚岃鍏冪礌涔嬮棿鐢ㄧ┖鏍硷紙鎴栤,鈥濓級闅斿紑锛3銆佺煩闃电殑琛屼笌琛屼箣闂寸敤鈥;鈥濓紙鎴栧洖杞︾锛夐殧寮锛4銆佺煩闃电殑鍏冪礌鍙互鏄暟鍊笺佸彉閲忋佽〃杈惧紡鎴栧嚱鏁帮紱5銆佺煩闃电殑灏哄涓嶅繀棰勫厛瀹氫箟銆備簩銆佸熀鏈煩闃靛嚱鏁板涓嬶細1銆 ones()鍑芥暟锛氫骇鐢熷叏...
绛旓細娌″杩囪繖璇█锛屾劅瑙変綘鍙互鐢ㄩ亶鍘嗘暣涓鐭╅樀鏍规嵁涓嬫爣璁板垽鏂紝姣斿浣犲紑濮嬫煡鎵10杩欎袱涓壘鍒板悗锛岃鏁+1缁х画瀵绘壘10鎵鍦ㄨ繖涓ゅ垪鏄笉鏄01涓嶆槸璺冲嚭鍒ゆ柇锛岀户缁鎵10
绛旓細鍦╩atlab涓锛屽彲浠ラ氳繃sum鍑芥暟鍜屾潯浠惰〃杈惧紡鏉ョ粺璁鐭╅樀涓ぇ浜庢垨灏忎簬鏌愭暟鐨勫厓绱犵殑涓暟銆傚叿浣瀹炵幇鏂规硶鍙互鍙傝冨涓嬬▼搴忔锛欰= [1, 2, 3, 4, 5;2, 3, 4, 5, 6;3, 4, 5, 6, 7];a = sum(A>4); % 缁熻鐭╅樀A涓煎ぇ浜4鐨勫厓绱犵殑涓暟 A>4琛ㄧず鍒ゆ柇鐭╅樀A涓瘡涓厓绱犵殑鍊兼槸鍚﹀ぇ浜4鐨勶紝鑻...
绛旓細鏈変釜绠鍗曟柟娉曪細x = [1 0 0 0; 1 0 0 1; 0 0 0 1;0 0 0 1];x = x(:,1) * 1000 + x(:,2) * 100 + x(:,3) * 10 + x(:,4);t = tabulate([x;0.1]);t(2:end,1:2)浣鐨勭煩闃姣忚鍏冪礌鏈夊灏戯紵
绛旓細渚嬪鍏冭優aa{2,1}=[1,2,3;4,5,6];% a鐨勭浜岃绗竴鍒楁槸涓2琛3鍒鐨勭煩闃% 鑾峰彇杩欎釜鐭╅樀鐨绗簩琛岀涓夊垪鐨勫厓绱狅紝涔熷氨鏄6a{2,1}(2,3)ans = 6% 鍏朵腑锛寋}涓殑淇℃伅鏄煩闃靛湪鍏冭優涓殑浣嶇疆锛()鏄鑾峰彇鐨勪俊鎭湪鐭╅樀涓鐨勪綅缃
绛旓細浣跨敤matlab锛屽彲浠ュ鐭╅樀鐩存帴寰楀埌鐭╅樀鐨涓琛屾垨鑰呬竴鍒楋紝涔熷彲浠ユ墦鍗板嚭鏉ャ傚亣璁惧凡缁忓畾涔変簡鐭╅樀A锛岃嫢鎻愬彇A鐨勭浜岃閲嶆柊缁勬垚涓涓鍚戦噺锛屽彲浠ヤ娇鐢ˋ(2,:)杩涜鎻愬彇锛屽浜庡垪鍚戦噺鐨勬彁鍙栧悓鐞嗐傝嫢闇瑕佺煩闃礎鐨2鍒6琛岋紝3鍒7鍒楃殑鏁版嵁閲嶆柊缁勬垚鐭╅樀锛屽彲浠ヤ娇鐢ˋ(2:6,3:7)杩涜鎻愬彇銆傝嫢瑕佹墦鍗版煇涓琛岋紝鍙互鍒╃敤fprintf...
绛旓細棣栧厛瀵鐭╅樀b姹傞嗭紝鏈変釜鍑芥暟鍙互瀹炵幇锛屽ソ鍍忔槸inv鍚э紝寰楀埌鐭╅樀inv_b锛岀劧鍚庡乏涔榓锛屽嵆c=inv_b*a
绛旓細杩欎釜绠鍗曪紝鐩稿叧鐨勪竴涓悕璇嶅ソ鍍忔槸閫昏緫涓嬫爣 浠g爜鏄細C=zeros(size(A));C(A==1)=B(A==1);鍒氭墠瀹為獙浜嗕竴娆★紝ok娌¢棶棰橈紝