例如,如果我有Test = [11 12],则在将字符串分配给数组时遇到问题
for ii=1:1:endofloop
if Test(ii) == 11
Test(ii) = 'J';
end
end
此输出的结果为[74 12],如何使它输出为[J 12]而不是[74,12]我尝试了char函数,但它不起作用。任何帮助表示赞赏
你的困难在于,74
作为字符的ASCII码的J
。我不相信您可以在向量中混合使用字符串和整数。但是,如果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
然后稍后使用subs将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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句