String matlab中字符串与数字的结合

String matlab中字符串与数字的结合,string,matlab,String,Matlab,假设我有一个温度值矩阵和一个对应于测量深度的向量,例如 depth = [1,4,8,11,15,16,20]; Temp = rand(1800,7); 我想在Temp的第一行中插入一行标题,其中每个标题表示度量的深度。我需要标题来说明temp,然后是深度,例如temp1、temp4、temp8、temp11。。。等等 我想做一些事情,比如定义“temp”,然后添加每个列的相应深度,例如 varstarter = 'temp'; 然后使用类似“regexp”的东西,但我不确定这是如何工作的

假设我有一个温度值矩阵和一个对应于测量深度的向量,例如

depth = [1,4,8,11,15,16,20];
Temp = rand(1800,7);
我想在Temp的第一行中插入一行标题,其中每个标题表示度量的深度。我需要标题来说明temp,然后是深度,例如temp1、temp4、temp8、temp11。。。等等

我想做一些事情,比如定义“temp”,然后添加每个列的相应深度,例如

varstarter = 'temp';
然后使用类似“regexp”的东西,但我不确定这是如何工作的。 有什么建议吗

arrayfun(@(x) ['temp' int2str(x)],depth,'UniformOutput',false)
这里,
@(x)['temp'int2str(x)]
定义了一个匿名函数,该函数将整数输入作为字符附加到给定的字符序列
temp
arrayfun
然后将此函数应用于第二个参数的每个元素,即
depth
。(由于arrayfun最常用于产生数值输出,例如,函数的每个应用程序都有一个数字,因此输出通常是一个矩阵,其大小至少在一个维度上等于第二个输入。因此,
'UniformOutput',false
选项告诉它这里不是这种情况(字符串的长度取决于每个输入的位数),输出需要是单元格数组。)


使用
[ans;num2单元格(Temp)];
将标题和数字数据组合到一个单元格数组中。

与@arne.b的正确答案相比,风格有了一些小的改进:

 arrayfun(@(x) {['temp' int2str(x)]},depth);
查看更多详细信息