2017-04-11 43 views
0

我的問題如下:與邏輯掩碼MATLAB小區指派

輸入

一個。一個大小爲[m,n,k]的單元格。

in = cell(2,2,2); 
in{1,1,1} = 'a'; in{2,1,1} = 'a'; in{1,2,1} = 'a'; in{2,2,1} = 'a'; 
in{1,1,2} = 'a'; in{2,1,2} = 'a'; in{1,2,2} = 'a'; in{2,2,2} = 'a'; 

b。一個大小爲[m,n,k]的邏輯掩碼。

mask = true(2,2,2); mask(1,1,2) = false; mask (2,1,1) = false; 
mask(1,1,1) = false; mask(1,2,1) = false; 

c。附加的串

str = 'b' 

期望的輸出

大小[M,N,K],s.t的每個座標I,J,T的細胞。

if mask(i,j,t)== true - > out(i,j,t)= in(i,j,t)與其他字符串連接。

否則 - >輸出(I,J,T)=在(I,J,T)

在上面的例子中,出應該是:

out(:,:,1) = 
'a' 'a' 
'a' 'ab' 
out(:,:,2) = 
'a'  'ab' 
'ab' 'ab' 

什麼是最優雅的方式用MATLAB來做到這一點?

謝謝!

回答

3

你可以簡單地使用邏輯索引和功能strcat

out = in; 
out(mask) = strcat(out(mask),'b')