arrays - 将字符串添加到空数组会给出“NAN”
问题描述
在 MATLAB 中,我想迭代地将字符串添加到 array s
,s
并由s = []
. 但是,当我运行下面的代码时
s = [];
s(end+1) = "a";
s(end+1) = "b";
结果是
>> s
s =
NaN NaN
有谁知道这个问题背后的原因和解决方法?
但是,当我已经""
在s
, ie,中时s = [""]
,可以s
毫无问题地添加以下所有元素:
s = [""];
s(end+1) = "a";
s(end+1) = "b";
给
s =
1×3 string array
"" "a" "b"
解决方案
当你初始化一个新数组时:
s = []
s
默认情况下,是 double 类。
因此,当您尝试在此数组中添加新字符串时,matlab 会尝试进行隐式转换string -> double
。当matlabNaN
必须处理 string -> double
转换时输出 a (除非该字符串可以解释为@CrisLuengo 提到的数字)。例如:
double("a")
% Produce Nan
[]
您可以使用 显式选择数组的数据类型,而不是使用 初始化数组strings
:
s = strings(0); % We create a 0x0 strings array.
s(end+1) = "a";
s(end+1) = "b";
我们得到:
s =
1×2 string array
"a" "b"
当您初始化一个已经包含空字符串的数组时,matlab 知道它需要生成一个字符串数组。
推荐阅读
- r - 如何用 4 个级别总结一个因素
- registry - 将值写入存储在 Inno Setup 中的数组中的所有注册表项
- rpgle - 在 RPG 中以 2 位小数显示双精度数?
- mysql - 如何计算mysql中嵌套表架构的百分比
- reactjs - PWA - 当前页面在离线时没有响应 200
- python - Pyqt5 python中的Stackwidget
- arrays - 如何通过 Solidity 中的多个键对 Struct 数组进行排序?
- php - 未从服务器验证 Google reCapthca V3 接收 JSON 对象
- php - 在 Laravel 上合并数组
- r - 为什么 FactorMineR 中的 CA 函数告诉我选择了未定义的列?