是否可以将字符串与一系列数字连接起来?

时间:2013-03-08 17:31:52

标签: string matlab concatenation matlab-uitable

我有一个字符串(例如'STA'),我想创建一个单元格数组,它将是我的刺痛与1到X之间数字的串联。

我希望代码能够像下面的fore循环那样做:

for i = 1:Num
    a = [{a}  {strcat('STA',num2str(i))}]
end

我希望最终结果的形式为{< 1xNum cell>}

a = 'STA1' 'STA2' 'STA3' ...

(我想在ColumnFormat数组中将其设置为uitable)

ColumnFormat = {{a},...                 % 1
             'numeric',...              % 2
             'numeric'};                % 3

3 个答案:

答案 0 :(得分:3)

我不确定从STA1开始,但这应该会给你一个以STA开头的列表(我猜你可以删除第一个条目)。

N = 5;
[X{1:N+1}] = deal('STA');
a = genvarname(X);
a = a(2:end);

答案 1 :(得分:1)

试试这个:

N = 10;
a = cell(1,N);
for i = 1:N
    a(i) = {['STA',num2str(i)]};
end

答案 2 :(得分:1)

您可以将 NUM2STR (将数字转换为字符串), CELLSTR (将字符串转换为单元格数组), STRTRIM (删除多余的空格)和 STRCAT (与另一个字符串组合)功能。

您需要(:)以确保数字向量为列。

x = 1:Num;
a = strcat( 'STA', strtrim( cellstr( num2str(x(:)) ) ) );

作为具有更多尺寸的矩阵的替代方案,我有这个辅助函数:

function c = num2cellstr(xx, varargin)
%Converts matrix of numeric data to cell array of strings

c = cellfun(@(x) num2str(x,varargin{:}), num2cell(xx), 'UniformOutput', false);