Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 在单元格数组中所有字符串的每个字符之间放置一个字符_String_Matlab_Cell Array - Fatal编程技术网

String 在单元格数组中所有字符串的每个字符之间放置一个字符

String 在单元格数组中所有字符串的每个字符之间放置一个字符,string,matlab,cell-array,String,Matlab,Cell Array,我有输入单元格={'ABCD','ABD','BCD'}。如何将运算符inputcell={'ABCD','ABD','BCD'};%%/初始单元 outputcell=单元格(大小(inputcell));%//初始化输出 对于ii=1:numel(输入单元) tmp=inputcell{ii};%//抓住第二个牢房 tmp2=[];%//初始化空收集器 tmp2(1:2:numel(tmp)*2)=tmp;%//将字符放在奇数索引上 tmp2(tmp2==0)='这里有另一种方法。您可以使用

我有
输入单元格={'ABCD','ABD','BCD'}
。如何将运算符
inputcell={'ABCD','ABD','BCD'};%%/初始单元
outputcell=单元格(大小(inputcell));%//初始化输出
对于ii=1:numel(输入单元)
tmp=inputcell{ii};%//抓住第二个牢房
tmp2=[];%//初始化空收集器
tmp2(1:2:numel(tmp)*2)=tmp;%//将字符放在奇数索引上

tmp2(tmp2==0)='这里有另一种方法。您可以使用/p将所需的
>输出单元
输出单元=

'A插入固定字符(
基本上是正确的方法。您可以使用
tmp2=[];tmp2(1:2:numel(tmp)*2)=tmp;tmp2(tmp2==0)删除内部循环='Thank@Daniel将其添加到循环中。是否有任何方法可以消除外部循环,例如
cellfun
或其他?可能是可能的,但
cellfun
不会加快代码速度,因此我看不到任何优势。该死,我也在研究正则表达式解决方案,但你的速度更快!这是正确的方法。@thewaywewalk谢谢!
 output-cell = {'A<B<C<D', 'A<B<D', 'B<C<D'}
inputcell = {'ABCD', 'ABD', 'BCD'}; %// Initial cell
outputcell = cell(size(inputcell)); %// Initialise output
for ii = 1:numel(inputcell)
    tmp = inputcell{ii}; %// grab the iith cell
    tmp2=[]; %// Initialise empty collector
    tmp2(1:2:numel(tmp)*2)=tmp; %// Put characters on odd indices
    tmp2(tmp2==0)='<'; %// Fill the even indices with <
    outputcell{ii} = tmp2(1:end-1); %// Store the new string
    clear tmp2 %// Clear the temporary string
end
outputcell
outputcell = 
    'A<B<C<D'    'A<B<D'    'B<C<D'
t = strcat(input_cell{n}, repmat('<', 1, length(input_cell{n})-1));
output_cell{n}(1:2:length(t)) = t(1:ceil(length(t)/2));
output_cell{n}(2:2:length(t)) = t(1+ceil(length(t)/2):length(t));
input_cell = {'ABCD', 'ABD', 'BCD'};
output_cell = cell(size(input_cell));

for n = 1:length(output_cell)
    t = strcat(input_cell{n}, repmat('<', 1, length(input_cell{n})-1));
    output_cell{n}(1:2:length(t)) = t(1:ceil(length(t)/2));
    output_cell{n}(2:2:length(t)) = t(1+ceil(length(t)/2):length(t));
end
>> output_cell
output_cell = 

    'A<B<C<D'    'A<B<D'    'B<C<D'
input_cell = {'ABCD', 'ABD', 'BCD'};                        %// input cell array
c = '<';                                                    %// character to be inserted
output_cell = regexprep(input_cell, '.(?=.)', ['$0' c]);    %// output cell array
output_cell = 
    'A<B<C<D'    'A<B<D'    'B<C<D'