【问题标题】:Cast double to char in Matlab? Why strcat('hello', char(324)) not working?在Matlab中将double转换为char?为什么 strcat('hello', char(324)) 不起作用?
【发布时间】:2013-05-03 21:30:11
【问题描述】:

目标

>> strcat('D_', char(2340), '.txt')

D_2340.txt

但 D_.txt 失败。为什么它忽略双重转换为char?我也试过 cast(340, 'char') 但同样的无知问题。它适用于strcat('hello','324','.txt'),但不适用于后者。为什么会有这种行为?

【问题讨论】:

  • 我认为您应该使用 num2str 而不是尝试转换为 char。我现在没有 Matlab 来测试这个,但我想char(65) == 'A' 其中num2str(65) 绝对等于'65'
  • @Dan 谢谢+1,它解决了这个问题。请把它移到一个答案,值得吗?那么这可以有一些解释,为什么铸造不起作用?

标签: matlab casting char double ascii


【解决方案1】:

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

【讨论】:

  • +1 完美!现在我明白了。转换有效,但它尝试将 2340 转换为未定义的 ASCII 对应项。它解释了为什么从 double 到 string 的转换返回空。谢谢。
  • @hhh:实际上char(2340) 是拉丁字母范围之外的某个Unicode 字符。它给了我:D_त.txt
猜你喜欢
  • 1970-01-01
  • 2013-11-28
  • 1970-01-01
  • 2014-12-02
  • 2013-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-09
相关资源
最近更新 更多