我的问题如下:
输入
一个。带有字符串的单元格大小为[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最优雅的方法是什么?
谢谢!
答案 0 :(得分:3)
您可以简单地使用逻辑索引和函数strcat
out = in;
out(mask) = strcat(out(mask),'b')