![](/img/trans.png)
[英]Matlab: How to replace certain elements of a matrix A by other values of A in both directions?
[英]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.