簡體   English   中英

如何在MATLAB中用其他數字替換矩陣的某些元素?

[英]How to replace some elements of a matrix by other numbers in MATLAB?

我有一個包含1000個二進制元素的矩陣,如下所示在Matlab中:

M = [011,011,001,010,011,000,010,100,100,...,...]

我想用其他數字替換一些元素:000按000000、110按000001、001按00001、100按0001、101按001、010按01、011按1。

我使用了這種方法,但是不起作用。 怎么了

for i = 1:1000
    if M(i) == 000
        M(i) = 000000;
    elseif M(i) == 110
         M(i) = 000001;
         elseif M(i) == 001
               M(i) = 00001;
               elseif M(i) == 100
                 M(i) = 0001;   
                 elseif M(i) == 101
                 M(i) = 001; 
                 elseif M(i) == 010
                 M(i) = 01;
    else
         M(i) = 1;
    end
end

請幫我:)

這里的問題是在matlab中,當您輸入000它表示數字0 如果要將其表示為000 ,則可以使用字符串'000'

我將首先建立一個查找表。

    Lookup_In  = [  000      110      001    100    101  010  011 ] ;
    Lookup_Out = {'000000','000001','00001','0001','101','01','1' } ;

然后,為答案StrOut構建一個空間。 M是原始輸入。

    M = [011,011,001,010,011,000,010,100,100] ;        
    StrOut = repmat({'Unknown'},size(M)) ;

檢查M中的元素是否可以在查找表Lookup_In找到。

    [tf, idx] =ismember(M, Lookup_In) ;

輸出最終結果。

    StrOut(tf) = Lookup_Out(idx(tf))

然后,你會得到

     '1'    '1'    '00001'    '01'    '1'    '000000'    '01'    '0001'    '0001'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM