[問題] 如何以某值取代矩陣內所有大於某值的值已回收

看板MATLAB作者 (homer)時間14年前 (2010/05/20 18:08), 編輯推噓2(209)
留言11則, 4人參與, 最新討論串1/1
如果有一個矩陣A=[1 2 3;4 5 6;7 8 9] 想要將矩陣A中所有大於5的值,用5去取代 變成B=[1 2 3;4 5 5;5 5 5] 有什麼指令或方法嗎?? 感覺是很小很小的問題> < 麻煩各位解答@ @ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.243.66

05/20 18:11, , 1F
B = A; B(find(A>5)) = 5;
05/20 18:11, 1F

05/20 18:11, , 2F
以前的文章就有了... #13gFPmug
05/20 18:11, 2F

05/20 18:12, , 3F
B=A; B(find(B>5))=5;
05/20 18:12, 3F

05/20 18:21, , 4F
謝謝!!已解決。想請問 #13gFPmug是什麼意思呢?
05/20 18:21, 4F

05/20 18:25, , 5F
到文章列表 貼上 #13gFPmug Enter 就可以看到指定文章
05/20 18:25, 5F

05/20 18:26, , 6F
其實可以更簡單 B = A; B(B>5) = 5;
05/20 18:26, 6F

05/20 19:18, , 7F
原來find可以省略 有沒有哪種情況下find是不能省的呢?
05/20 19:18, 7F

05/20 20:30, , 8F
你可以查查 linear indexing 和 logical indexing
05/20 20:30, 8F

05/20 20:32, , 9F
噢... 你可以試著跑然後比較看看 B>5 和 find(B>5) 所
05/20 20:32, 9F

05/20 20:33, , 10F
回傳過來的是什麼東西。相信會有幫助的 ^_^
05/20 20:33, 10F

05/20 20:45, , 11F
恩恩~感謝樓上又上了一課! 感恩~
05/20 20:45, 11F
文章代碼(AID): #1BzGenue (MATLAB)