【发布时间】:2016-05-05 15:19:54
【问题描述】:
我正在从 csv 文件中读取文本条目,并根据存储在数组中的默认值对它们进行测试。在 Matlab 中我使用过isequal(w1,w2);但是,Julia 更严格,isequal 总是报告 false 。在
试图找出原因,我查看了这两个变量的属性。对于 csv 文件中的数据,typeof(w2) 呈现 SubString{ASCIIString}; w2[1] 渲染 A; typeof(w2[1]) 渲染 Char;和length(w2) 呈现23。对于默认数组,typeof(w1) 渲染 Array{ASCIIString,1}; w1[1] 渲染 APP #2 bias voltage [V];typeof(w1[1]) 渲染 ASCIIString;和length(w1) 呈现1。
所以看起来我一方面有一个 Char 变量,另一方面有一个 String 变量。我查看了文档并在线搜索了来自 Char->String 或 String->Char 的转换函数,但我没有找到。
我是否应该将每个变量中的每个文本字符转换为其 ASCII 等效数字代码,然后评估等效性?或者有没有办法将字符串文本字符填充到 Char 数组中?
任何帮助表示赞赏。
【问题讨论】:
-
map(x -> Char(x[1]) , x)将从您的 x 向量返回字符。 -
非常正确,谢谢 - "z1 = map(w1 -> Char(w1[1]), w1)" 结果:"typeof(z1)" 呈现 "Array{Char,1}" ,并且“z1”呈现“1-element Array{Char,1}: 'A'”。但是,“isequal(z1,w2[1])”仍然是“假”。我做错了什么?
-
我可以使用 isequal(w1,[w2]) 代替我一直使用的 [isequal(w1,w2)]。谢谢。
标签: julia