使用逻辑掩码进行MATLAB单元分配

时间:2017-04-11 12:21:29

标签: matlab image-processing

我的问题如下:

输入

一个。带有字符串的单元格大小为[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';   

湾一个大小为[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;

℃。一个额外的字符串

str = 'b'

所需的输出

每个坐标i,j,t的大小为[m,n,k],s.t的单元格。

如果mask(i,j,t)== true - > out(i,j,t)= in(i,j,t)与附加字符串连接。

否则 - > out(i,j,t)= in(i,j,t)

在上面的示例中,out应为:

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

使用MATLAB最优雅的方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以简单地使用逻辑索引和函数strcat

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