在Matlab中预分配字符串大小

时间:2013-03-13 23:31:40

标签: matlab

我非常清楚如何使用one,zeros和cell命令预先分配Matrix大小但是如何使用String?

假设我有一个名为data的矩阵,如果我想打印这些数字的ASCII字符而不是自己的数字,那么每个值都在1-255之间,我会这样做,

msg='';

    for i = 1 : length(data)
        msg=horzcat(msg,floor(data(i))); % horzcat doesn't ignore spaces
    end

msg

在上面的代码中,Matlab在循环结束之前没有意识到msg的大小,我真正想做的是在循环开始之前声明变量msg的大小。 / p>

我该怎么做?

1 个答案:

答案 0 :(得分:4)

您可以使用char来预分配字符串,就像使用矩阵一样(字符串只是一个字符数组):

msg = char(zeros(100,1));

然而,这可能不是你需要的(我没有看到任何人为任何事情预分配字符串)。鉴于这是你想要做的事情

  

假设我有一个Matrix命名数据,如果我想打印这些数字的ASCII字符而不是数字,那么每个值都在1-255之间

您只需执行char(data)即可显示ASCII / Unicode值。