2013-05-03 68 views
0

目标在Matlab中对char进行双重处理?为什么strcat('hello',char(324))不起作用?

>>的strcat( 'D_',炭(2340), '.TXT')

D_2340.txt

但失败与D_.txt。为什么它忽略了双重char转换?我也试过(340,'char')但是同样的无知问题。它与strcat('hello','324','.txt')一起工作,但与后者不一致。为什么会这样?

+1

我认为你应该使用'num2str'而不是试图转换为'char'。我现在没有Matlab来测试它,但是我会想象''num(65)=='A''其中'num2str(65)'肯定等于''65'' – Dan 2013-05-03 21:31:38

+0

@丹谢谢+1,它解决了这个问题。请把它移到一个答案上,值得吗?那么这可能有一些解释,为什么铸造不工作? – hhh 2013-05-03 21:32:28

回答

1

我认为你应该使用num2str而不是试图转换为字符。我现在没有Matlab来测试这个,但我会想像char(65) == 'A'(即ascii),因为num2str(65)绝对等于'65'所以谁知道什么字符字符(2340)将返回...

+0

+1完美!现在我明白了。该铸造工作,但它试图将2340转换为未定义的ASCII对应物。它解释了为什么从双重字符串转换为空字符串的原因。谢谢。 – hhh 2013-05-03 21:37:48

+3

@hhh:其实'char(2340)'是拉丁字母范围之外的一些Unicode字符。它给了我:'D_Ì。txt' – Amro 2013-05-03 22:54:40

相关问题