Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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_Concatenation_Matlab Uitable - Fatal编程技术网

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

String 是否可以将一个字符串与一系列数字连接起来?,string,matlab,concatenation,matlab-uitable,String,Matlab,Concatenation,Matlab Uitable,我有一个字符串(例如“STA”),我想制作一个单元格数组,它将是我的sting与1到X之间的数字的串联 我希望代码执行类似于下面的前循环的操作: for i = 1:Num a = [{a} {strcat('STA',num2str(i))}] end 我希望最终结果以{}的形式出现 (我想将其设置为ColumnFormat数组中的uitable) 试试这个: N = 10; a = cell(1,N); for i = 1:N a(i) = {['STA',num2str

我有一个字符串(例如“STA”),我想制作一个单元格数组,它将是我的sting与1到X之间的数字的串联

我希望代码执行类似于下面的前循环的操作:

for i = 1:Num
    a = [{a}  {strcat('STA',num2str(i))}]
end
我希望最终结果以{}的形式出现

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

试试这个:

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

我不确定是否从STA1开始,但这应该会得到一个以STA开始的列表(我想您可以从中删除第一个条目)


您可以通过组合使用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);

你的问题是什么?有没有可能不使用FOR循环?有趣的方法。如果您需要从1开始的序列中的数字
X=repmat({'STA'},1,N+1)也应该起作用。
N = 5;
[X{1:N+1}] = deal('STA');
a = genvarname(X);
a = a(2:end);
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);