string - 解释 "str - ' 0'"字符串转整数时的用法。

标签 string matlab

我注意到一个非常酷的转换字符串的方法,比方说

str = '1234'

向量就是用这个技巧。

vec = str - '0'
 = [1 2 3 4]

我的问题是为什么这种方法有效?

此外,类似:

vec1 = str -'1'
  = [0 1 2 3]

但是

vec2 = str - '10'
  Error using  - 
  Matrix dimensions must agree.

这里发生了什么?

最佳答案

当您对字符串使用算术运算符时,Matlab 将字符串转换为 double 值,从而将字符串转换为 ascii 值:

>> double('1')
ans =
    49

因此,减法可以正常工作,尽管加法会产生奇怪的结果

>> '1'+'1'
ans =
    98

将字符串数组转换为 double 的数组,因此“矩阵维度必须一致”:

>> double('10')
ans =
    49    48

因此,虽然减去 '0' 是一个很酷的快捷方式,但我建议您使用 STR2DOUBLE而是为了避免混淆。

关于string - 解释 "str - ' 0'"字符串转整数时的用法。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12072541/

相关文章:

matlab - MATLAB 中的常量

matlab - 将 yuv 序列转换为 bmp 图像

c - C 中没有分配内存的字符串操作

c - 遍历字符数组以查找字母表中每个字母的出现

php - 当字符串末尾时模式不匹配

matlab - csv 格式 matlab/gephi

c++ - 从 MATLAB 调用 C++ 可执行文件时如何绕过错误对话框?

string - 查找可能的字符串变体数量的算法

string - 如何检查字符串是否包含 Kotlin 中的子字符串?

c++ - Eigen C++/Matlab 四元数和旋转矩阵不匹配