Arrays 操作单元数组元素
我有一个单元格数组,其中包含元素Arrays 操作单元数组元素,arrays,matlab,Arrays,Matlab,我有一个单元格数组,其中包含元素“abc”,“def”,“ghi” 谁能告诉我如何将其转换为“aa bb cc”,“dd ee ff”,“gg hh ii” 我最后做了“abcabc”等等 >> t = {'abc','def'} >> tnew = cellfun(@(x)reshape([x' x' repmat(' ',numel(x),1)]',1,[]),t,'UniformOutput',false) tnew = 'aa bb cc ' 'dd
“abc”
,“def”
,“ghi”
谁能告诉我如何将其转换为“aa bb cc”
,“dd ee ff”
,“gg hh ii”
我最后做了“abcabc”
等等
>> t = {'abc','def'}
>> tnew = cellfun(@(x)reshape([x' x' repmat(' ',numel(x),1)]',1,[]),t,'UniformOutput',false)
tnew =
'aa bb cc ' 'dd ee ff '
每个字符串后面都会有一个尾随空格,但您可以使用strtrim去掉它
>> strtrim(tnew)
ans =
'aa bb cc' 'dd ee ff'
每个字符串后面都会有一个尾随空格,但您可以使用strtrim去掉它
>> strtrim(tnew)
ans =
'aa bb cc' 'dd ee ff'
使用常规表达式怎么样
x = {'abc', 'def', 'ghi'}; %// cell array of strings
y = regexprep(x, '.', '$0$0 '); %// duplicate each character and insert a blank space
y = regexprep(y, ' $', ''); %// remove last space
这给
y =
'aa bb cc' 'dd ee ff' 'gg hh ii'
使用常规表达式怎么样
x = {'abc', 'def', 'ghi'}; %// cell array of strings
y = regexprep(x, '.', '$0$0 '); %// duplicate each character and insert a blank space
y = regexprep(y, ' $', ''); %// remove last space
这给
y =
'aa bb cc' 'dd ee ff' 'gg hh ii'
您尝试了什么?另外,为了澄清,您的单元格的元素是
“abc”
还是“abc”
?换句话说,它们是否包含本身不用于创建Matlab字符串(字符数组)的直双引号符号“”?您尝试了什么?另外,为了澄清,您的单元格的元素是“”abc“
还是“”abc“
”?换句话说,它们是否包含直双引号符号“”“
它本身不用于创建Matlab字符串(字符数组)?我意识到我们不是在玩代码高尔夫(不幸的是?:),但使用deblank
而不是最后一行要短一些deblank
也几乎快了一个数量级。@横向条件好主意!不管怎样,另一个问题就是这样的,所以我就这样离开。我意识到我们不是在玩代码高尔夫(不幸的是?:),但是使用deblank
而不是最后一行要短一些deblank
也几乎快了一个数量级。@横向条件好主意!不管怎样,另一个问题就是这样的,所以我就这样离开。