在cellfun MATLAB中使用条件

时间:2014-06-09 21:30:40

标签: matlab

问题是:

A = [9 10];

我想获得B = {' 09',' 10'};

我做到了:

    for hij=1:size(A,1)
        if A{hij}<9
            B{hij}=strcat('0',num2str(A{hij}),'');
        else
            B{hij}=strcat('',num2str(A{hij}),'');
        end
    end

但我想知道是否有可能在不使用循环的情况下制作它,可能使用&#34; cellfun &#34 ;;谢谢!

2 个答案:

答案 0 :(得分:3)

这是你想要的吗?

>> B = num2str(A(:),'%02d'); %// second argument to num2str is format spec
B =
    09
    10

这给出了一个字符串矩阵B。要将B转换为字符串的单元格数组:

>> B = mat2cell(B,ones(1,size(B,1))).';
B = 
    '09'    '10'

或者,如Divakar所述,

>> B = cellstr(B).';
B = 
    '09'    '10'

答案 1 :(得分:1)

路易斯的回答很好。为了完整起见,如果您真的需要,可以使用arrayfun

C = arrayfun(@num2str, A,'UniformOutput', 0 );