使用matlab将字符串赋值给数组的字符串

时间:2014-11-30 05:47:45

标签: matlab

我在向数组分配字符串时遇到问题 例如,如果我有Test = [11 12]

for ii=1:1:endofloop
    if Test(ii) == 11
     Test(ii) = 'J';
    end
 end

输出结果为[74 12],如何使其输出[J 12]而不是[74,12]我尝试了char函数,但它没有工作。任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

您的困难在于74J的{​​{3}}。我不相信你可以在向量中混合字符串和整数。但是,如果J是符号并且不需要作为字符串,而是代表值,则可以执行此操作

syms J; % Not a string 'J' but rather a symbolic value. An 'x' so to speak
for ii=1:1:endofloop
    if Test(ii) == 11
     Test(ii) = J;
    end
 end

然后使用ascii character code替换J替换值,其中您将执行类似

的操作
subs(Test,J,value) % value is somewhere earlier defined

但是,如果您真的想要使用混合数组,Adiel就推荐使用单元格数组。

如果您只是将其用作翻译脚本,请说明J=11K=12,那么我建议使用单独的数据结构来保存您的翻译值,例如一个简单的字符串。例如:

s = '';
for ii=1:1:endofloop
    if Test(ii) == 11
     s = strcat(s,'J');
    end
    if Test(ii) == 12
     s = strcat(s,'K');
    end     
end