在GNU Octave中标识变量类型

问题描述 投票:0回答:1

[使用Octave练习时,我创建了一个名称为my_name = ["Andrew"]的变量,并在要求Octave解释它是否是字符串时输出了“ 0”。再次使用typeinfo(my_name)时,我得到了ans = string。为什么我得到这种输出?

octave:47> my_name = ["Andrew"]

my_name = Andrew

octave:48> isstring(my_name)

ans = 0

octave:49> typeinfo(my_name)

ans = string
octave
1个回答
0
投票

根据the documentation(强调我):

isstring(s)

如果s是一个字符串数组,则返回true。

字符串数组是一种数据类型,它在数组中的每个元素上存储字符串(字符的行向量)。它与字符数组不同,后者是N维数组,其中每个元素都是单个1x1字符。它也不同于在每个元素上存储字符串的字符串单元格数组,但是使用单元格索引“ {}”访问元素,而不是使用普通数组索引“(()”)的字符串数组。

编程注意:Octave尚未实现字符串数组,因此此函数将始终返回false。

也就是说,无论输入是什么,isstring总是返回false(或0)。

您应该使用ischar确定输入是否为字符数组(==字符串)。

© www.soinside.com 2019 - 2024. All rights reserved.