2014-02-27 120 views
2

我使用MATLAB,我必須進行以下配對:分配字符串到矩陣元素

我有個整數的數組:

A = [1 0 1 0 1] 

和相同的尺寸的陣列,與字符串:

B = ['a' 'b' 'c' 'd' 'e'] 

我需要創建一個字符串數組,C,其中對於矩陣A的每一個元素是0矩陣的對應元素是空白(''),但對於矩陣A的每一個元素是1,矩陣的相應元素C是具有B相應元件相同。

即陣列C是:

C = ['a' '' 'c' '' 'e'] 
+0

重複:http://stackoverflow.com/questions/22043110/map-a-matrix-with-another-matrix/22043212#22043212 – tashuhka

+1

你想'C = [ '一' '' 'C' '''e']'(這與'C ='ace''相同),還是你想要'C = {'a''''c''''e'}'? – Dan

+0

@tashuhka,你想標記這是一個重複的問題?我不確定它是什麼,因爲這是用於字符串的,而qeustion是用於整數的。 – patrickvacek

回答

1

使用邏輯索引

C = B(A == 1) 
+0

空白被省略! C = ['a''c''e'] – user3270686

3

如果定義B作爲cell陣列更有意義:

B = {'a' 'b' 'c' 'd' 'e'} 

然後分配空瓶像這樣:

>> B(A==0) = {''} 
B = 
    'a' '' 'c' '' 'e' 
+0

如何將矩陣B = ['a''b''c''d''e']轉換爲單元格B1 = {'a''b'' c''d''e'} – user3270686

+0

@ user3270686:像這樣:'B ='一些測試字符串'; B = num2cell(B)' –