【问题标题】:combining string and number in matlab在matlab中组合字符串和数字
【发布时间】:2012-02-17 08:29:15
【问题描述】:

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

depth = [1,4,8,11,15,16,20];
Temp = rand(1800,7);

我想在 Temp 的第一行插入一行标题,其中每个标题代表测量的深度。我需要标题来说明温度,然后是深度,例如temp1、temp4、temp8、temp11……等

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

varstarter = 'temp';

然后使用'regexp'之类的东西,但我不确定它会如何工作。 有什么建议吗?

【问题讨论】:

    标签: string matlab


    【解决方案1】:
    arrayfun(@(x) ['temp' int2str(x)],depth,'UniformOutput',false)
    

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

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

    【讨论】:

      【解决方案2】:

      与@arne.b 的好答案相比,风格略有改进:

       arrayfun(@(x) {['temp' int2str(x)]},depth);
      

      查看this post了解更多详情。

      【讨论】:

        猜你喜欢
        • 2015-11-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-14
        相关资源
        最近更新 更多