将数字字符串转换为具有特定精度的浮点数(不会出现舍入错误)

伊塔玛G3

我有一个单元格向量(例如,大小为50x1,称为tokens),每个单元格都是一个具有属性x,的结构f1f2这些属性是表示数字的字符串。例如,tokens{15}给出:

x: "-1.4343429"
f1: "15.7947111"
f2: "-5.8196158"

我试图将这些数字放入 3 个向量中(每个向量也是50x1),其类型为float. 所以我创建了 3 个向量:

x = zeros(50,1,'single');
f1 = zeros(50,1,'single');
f2 = zeros(50,1,'single');

这工作正常(为什么不呢?)。但是当我尝试填充这些向量时:(L是一个for循环索引)

x(L)=tokens{L}.x;
.. also for the other 2

我得到:

从字符串转换为单个时发生以下错误:无法从字符串转换为单个。

我能理解的;隐式转换不适用于single. 如果属于 类型x它确实有效f1f250x1 double

我用浮点数做这件事的原因是因为我得到的数据来自一个 C 程序,该程序将一些浮点数写入到一个文件中,由 matlab 读取。如果我尝试在 C 程序中将值转换为双精度值,则会出现舍入错误...

所以,(在我希望是一个好问题之后)我怎样才能以正确的精度获得这些字符串中的数字?(所有字符串的小数位数相同:7)。

MCVE:

filedata = fopen('fname1.txt','rt'); 
%fname1.txt is created by a C program. I am quite sure that the problem isn't there.
scanned = textscan(filedata,'%s','Delimiter','\n');
raw = scanned{1};
stringValues = strings(50,1);
for K=1:length(raw)
    stringValues(K)=raw{K};
end
clear K %purely for convenience

regex = 'x=(?<x>[\-\.0-9]*),f1=(?<f1>[\-\.0-9]*),f2=(?<f2>[\-\.0-9]*)';
tokens = regexp(stringValues,regex,'names');

x = zeros(50,1,'single');
f1 = zeros(50,1,'single');
f2 = zeros(50,1,'single');

for L=1:length(tokens)
    x(L)=tokens{L}.x;
    f1(L)=tokens{L}.f1;
    f2(L)=tokens{L}.f2;
end
Bentoy13

str2double在分配到您的数组之前使用函数(如果需要,然后将其转换为单个)。字符串(字符数组)在用作数字之前必须显式转换为数字。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用PHP将数字字符串转换为浮点数?

来自分类Dev

将带有财务缩写的数字字符串转换为浮点数

来自分类Dev

如何将浮点数转换为字符串而不会丢失用户在 C 中输入的精度?

来自分类Dev

浮点数:我可以递归地将数字除以/乘以 2 并且永远不会出现舍入错误吗?

来自分类Dev

字符串不会转换为浮点数

来自分类Dev

Python将字符串转换为浮点数会显示错误,显示数字为字母和数字的混合

来自分类Dev

将字符串转换为整数,双精度,浮点数,而不必捕获异常

来自分类Dev

将字符串转换为浮点数在我的数据库列中具有浮点类型

来自分类Dev

不会将字符串格式的十进制数字转换为浮点数

来自分类Dev

将31.1 M之类的字符串数字转换为数字/浮点数?

来自分类Dev

在出现“无法将字符串转换为浮点数”错误时尝试绘制两行数据

来自分类Dev

Python将字符串转换为浮点数

来自分类Dev

formatFloat:将浮点数转换为字符串

来自分类Dev

将字符串转换为浮点数

来自分类Dev

无法将字符串转换为浮点数

来自分类Dev

如何将逗号作为字符串的数字转换为Javascript中的浮点数

来自分类Dev

将字符串转换为数字(根据输入的变量为浮点数或整数)

来自分类Dev

是否将31.1 M之类的字符串转换为数字/浮点数?

来自分类Dev

python-将字符串转换为数字(浮点数或整数)的问题

来自分类Dev

Python:将负字符串数字转换为浮点数时遇到的困难

来自分类Dev

如何将数字的英语字符串转换为浮点数(例如,“ 26” => 26.0)

来自分类Dev

如何将字符串转换为数字范围(浮点数)?

来自分类Dev

无法将字符串转换为浮点数 - 不是数字 (NaN)

来自分类Dev

熊猫数据框将特定列从字符串转换为浮点数

来自分类Dev

如何避免错误:无法将字符串转换为浮点数

来自分类Dev

熊猫Python错误:无法将字符串转换为浮点数

来自分类Dev

错误:无法将字符串转换为浮点数-Django

来自分类Dev

值错误:无法将字符串转换为浮点数:'−4.0'

来自分类Dev

TensorFlow 回归错误:“无法将字符串转换为浮点数:”

Related 相关文章

  1. 1

    如何使用PHP将数字字符串转换为浮点数?

  2. 2

    将带有财务缩写的数字字符串转换为浮点数

  3. 3

    如何将浮点数转换为字符串而不会丢失用户在 C 中输入的精度?

  4. 4

    浮点数:我可以递归地将数字除以/乘以 2 并且永远不会出现舍入错误吗?

  5. 5

    字符串不会转换为浮点数

  6. 6

    Python将字符串转换为浮点数会显示错误,显示数字为字母和数字的混合

  7. 7

    将字符串转换为整数,双精度,浮点数,而不必捕获异常

  8. 8

    将字符串转换为浮点数在我的数据库列中具有浮点类型

  9. 9

    不会将字符串格式的十进制数字转换为浮点数

  10. 10

    将31.1 M之类的字符串数字转换为数字/浮点数?

  11. 11

    在出现“无法将字符串转换为浮点数”错误时尝试绘制两行数据

  12. 12

    Python将字符串转换为浮点数

  13. 13

    formatFloat:将浮点数转换为字符串

  14. 14

    将字符串转换为浮点数

  15. 15

    无法将字符串转换为浮点数

  16. 16

    如何将逗号作为字符串的数字转换为Javascript中的浮点数

  17. 17

    将字符串转换为数字(根据输入的变量为浮点数或整数)

  18. 18

    是否将31.1 M之类的字符串转换为数字/浮点数?

  19. 19

    python-将字符串转换为数字(浮点数或整数)的问题

  20. 20

    Python:将负字符串数字转换为浮点数时遇到的困难

  21. 21

    如何将数字的英语字符串转换为浮点数(例如,“ 26” => 26.0)

  22. 22

    如何将字符串转换为数字范围(浮点数)?

  23. 23

    无法将字符串转换为浮点数 - 不是数字 (NaN)

  24. 24

    熊猫数据框将特定列从字符串转换为浮点数

  25. 25

    如何避免错误:无法将字符串转换为浮点数

  26. 26

    熊猫Python错误:无法将字符串转换为浮点数

  27. 27

    错误:无法将字符串转换为浮点数-Django

  28. 28

    值错误:无法将字符串转换为浮点数:'−4.0'

  29. 29

    TensorFlow 回归错误:“无法将字符串转换为浮点数:”

热门标签

归档