Octave 为什么倍频程显示这个字符数组的错误维数

Octave 为什么倍频程显示这个字符数组的错误维数,octave,Octave,我不明白为什么这个阵列: Type = Reflective Event, Reflective Event, Reflective Event 根据Octave的变量编辑器,它是一个3x19字符数组 在变量编辑器中,类型如下所示(我不知道这是否有用) 事情很奇怪,事实上,当我编码disp(size(TYPE))时,我得到相应的319 现在,更复杂的事情是,如果我编码size(TYPE,1),它应该给出类型的第一个维度的大小,我会得到11 你们能帮我找出哪里不对吗?猜猜看,因为帖子中的语法是无

我不明白为什么这个阵列:

Type = Reflective Event, Reflective Event, Reflective Event
根据Octave的变量编辑器,它是一个3x19字符数组

在变量编辑器中,类型如下所示(我不知道这是否有用)

事情很奇怪,事实上,当我编码
disp(size(TYPE))
时,我得到相应的
319

现在,更复杂的事情是,如果我编码
size(TYPE,1)
,它应该给出类型的第一个维度的大小,我会得到
11


你们能帮我找出哪里不对吗?

猜猜看,因为帖子中的语法是无效的八度:

你的变量实际上是一个字符矩阵。请注意,字符串只是一个独立字符数组。所以

var1=" Reflective Event, ";
长度(var1)==19
数组,或
大小(var1)==(1,19)
数组。现在,如果你再重复一遍,你可以做一个
(1,19*3)
数组,或者一个
(3,19)
矩阵,我假设这就是你的矩阵

现在,由于您不知道每个字符都是独立的,所以您在第二次测试中得出了错误的结论。当您使用线性索引(即单个索引)为矩阵编制索引时,它将“展开”数组并为您提供单个元素

i、 e.
A=[1 2 3;4 5 6;7 8 9]
是一个3x3矩阵,但您可以执行
A(2,1)
或仅
A(4)
来访问值4


在你的测试中,
size(TYPE(1))
(1,1)
,因为
TYPE(1)==“
,as
TYPE(3)==“e”
等等。

嗯,我主要使用matlab,但你的语法在matlab中无效,变量
TYPE
不能这样定义。这是您实际使用的代码吗?我在八度音阶中得到了“sytanx错误”
TYPE
的第一维度的大小是由
size(TYPE,1)
size(TYPE)(1)
给出的,而不是
size(TYPE(1))
。是的,那是我编辑的一个打字错误。谢谢,现在我明白了。它计算每个角色的数量,因此其中一个由19个角色组成!现在清楚多了,谢谢
var1=" Reflective Event, ";