我在向数组分配字符串时遇到问题 例如,如果我有Test = [11 12]
for ii=1:1:endofloop
if Test(ii) == 11
Test(ii) = 'J';
end
end
输出结果为[74 12],如何使其输出[J 12]而不是[74,12]我尝试了char函数,但它没有工作。任何帮助表示赞赏
答案 0 :(得分:0)
您的困难在于74
是J
的{{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=11
和K=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