matlab - 从配置文件将小数解析为matlab

标签 matlab configuration-files

在一个matlab程序中我有一个需要读入的外部参数文件。就像

a = 1/3
b = 'test'

目前我使用textscan读取这个文件,使用str2num解析a的值。但是,我读到 str2num 在内部使用 eval,出于安全原因,这是不可取的:如果有人制作了 a = 'delete something',并且然后 str2num 将作为副作用执行该字符串。 str2double 不适用于小数。有没有更好的方法将 1/3 从外部文件解析到 matlab 中?

最佳答案

如果您要解析只能是简单数字或除法的输入,str2double/str2double 方法可能就足够了。但是,如果您希望总体上安全地解析输入,我建议您限制输入。

例如像这样:

rawString= 'dir+3/5'
safeCharacters = ['0':'9' '+-*/\^eEij. '];

if all(ismember(rawString,safeCharacters))
   str2num(junkString)
end

当然这可能会过滤掉一些可能好的输入,例如:str2num('rand')

关于matlab - 从配置文件将小数解析为matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21458722/

相关文章:

arrays - 如何用元胞数组中的 "string"类型替换所有 "char"类型?

matlab - 在 Matlab 中设置向量的初始类型

c# - 在 Blazor 客户端中放置配置文件的位置

linux - 如何一次获得您对配置文件所做的所有更改(自系统安装以来)?

c# - 跨引用程序集重复配置

Matlab:保持非零矩阵元素彼此相邻并忽略孤立元素

Matlab 用白色填充形状

具有共享日志配置的 Gradle 多项目

Matlab等高线图平滑颜色

python - 使用配置文件打包 Python 应用程序