【问题标题】:MATLAB cell assignment with logical mask带有逻辑掩码的 MATLAB 单元分配
【发布时间】:2017-04-11 12:21:29
【问题描述】:

我的问题如下:

输入

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

期望的输出

每个坐标 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 最优雅的方法是什么?

谢谢!

【问题讨论】:

    标签: matlab image-processing


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-24
      • 2023-03-10
      相关资源
      最近更新 更多