[問題] 矩陣元素值取代已回收

看板MATLAB作者 (XDDDDDD)時間16年前 (2009/10/18 23:58), 編輯推噓1(108)
留言9則, 2人參與, 最新討論串1/1
假設我現在手邊有一個A矩陣 其值是[0 1 2 3 4 5 6 7 8 9] B矩陣 其值是[0 0 2 4 5 7 9 9 9 9] 現在有一個C矩陣,假設為5x5,而裡面的元素都是介於0~9的整數 我要如果把C裡面元素的A規則值轉換成B規則值呢 想法: 我是用 C(find(C = =0))= 0 ^^ ^^ 取A的第一元素的位置要等於B第一元素的位置 C(find(C = =1))= 0 C(find(C = =2))= 2 C(find(C = =3))= 4 以此下去 這種方法不但要自己一個一個key 而且做到後面出錯了 例如A的3變成B的4 而後來新矩陣為4的值就變多了 結果A的4又變成B的5 後面就一直出錯了 想請問大家是不是有轉換的寫法 而不是像我這樣一個值一個一個打進去的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.98.187

10/19 00:15, , 1F
你再開個D矩陣吧
10/19 00:15, 1F

10/19 00:15, , 2F
D = zeros( 5 ) ;
10/19 00:15, 2F

10/19 00:16, , 3F
D( find( C ==0 ) ) = 0 ;
10/19 00:16, 3F

10/19 00:16, , 4F
D( find( C == 1 ) ) = 0 ;
10/19 00:16, 4F

10/19 00:16, , 5F
你再看一下規則就可以用迴圈取代了
10/19 00:16, 5F

10/19 00:17, , 6F
D( find( C == A( 1 ) ) ) = B( 1 ) ;
10/19 00:17, 6F

10/19 00:17, , 7F
D( find( C == A( 2 ) ) ) = B( 2 ) ;
10/19 00:17, 7F

10/19 00:17, , 8F
所以迴圈寫法為D( find( C == A( i ) ) ) = B( i ) ;
10/19 00:17, 8F

10/19 00:30, , 9F
3q 了改了^^
10/19 00:30, 9F
文章代碼(AID): #1AspijKK (MATLAB)
文章代碼(AID): #1AspijKK (MATLAB)