从GNU Octave的字符串数组中访问字符串

5
如何在Octave中访问整个元素helloahoy? 只有每个字符串的第一个字符被打印出来。
octave:1> s = ["hello";"ahoy"]
s =

hello
ahoy 

octave:2> s(1)
ans = h
octave:3> s(2)
ans = a

我想要使用这个功能,将一个存储了图表名称的数组中的名称列表自动命名给多个图表。 - Archisman Panigrahi
2
该语法仅在MATLAB中适用,在其中字符串和字符是不同的。对于Octave,请使用单元格数组。 - Sardar Usama
1
只是加强一下解释:你正在使用Matlab 2017中定义的新的“string”类。在此之前,Matlab和Octave中都只有字符数组,并且它们都会产生你上面报告的输出。Octave尚未实现字符串类,因为新构造与关于char数组的一些其他设计决策存在冲突。因此,字符数组的第1个和第2个元素是第1个和第2个字符,而不是第1个和第2个字符串。在两个程序中都尝试使用class(s),并注意差异。一个将是char,另一个将是string。 - Nick J
2个回答

9

3

检查 s 的大小和类型以了解发生了什么:

octave:5> size(s)
ans =

   2   5

octave:6> class(s)
ans = char

这是一个2x5的字符矩阵。要进行索引,使用矩阵索引。例如,获取第一行:

octave:7> s(1,:)
ans = hello

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接