Octave 如何将向量转换为数组?

Octave 如何将向量转换为数组?,octave,Octave,我想把向量转换成ocative中的数组。 我想比较向量中是否有可用的字符串。向量是预定义的。我将使用strcmp函数检查列表中是否存在特定字符串。此函数仅适用于数组,而不适用于向量 如何将向量转换成八度数组 请在下面的屏幕截图中找到向量和使用strcmp的数组之间的差异: 倍频程(和Matlab)没有向量类型。它们也没有列表类型 他们拥有的是数组和单元格数组。 根据惯例,两者都有两个或更多维度 倍频程中的“水平向量”实际上是二维数组,其中第一维(即行)为1 倍频程中的“垂直/列向量”实际上是二维

我想把向量转换成ocative中的数组。 我想比较向量中是否有可用的字符串。向量是预定义的。我将使用strcmp函数检查列表中是否存在特定字符串。此函数仅适用于数组,而不适用于向量

如何将向量转换成八度数组

请在下面的屏幕截图中找到向量和使用strcmp的数组之间的差异:

倍频程(和Matlab)没有向量类型。它们也没有列表类型

他们拥有的是数组和单元格数组。 根据惯例,两者都有两个或更多维度

倍频程中的“水平向量”实际上是二维数组,其中第一维(即行)为1

倍频程中的“垂直/列向量”实际上是二维数组,其中第二维度(即列)为1

“标量”是二维数组,其中第一维度和第二维度均为1

Octave/matlab提供了测试数组是否是有效的“向量”或“标量”的函数,但它们不被视为单独的“类型”。因此,将“向量”转换为等效“数组”的问题毫无意义

数组有一个限制,即其所有元素必须是同一类型(例如数字、字符、类派生对象等)

单元数组没有这样的限制;单元数组的每个元素都可以有任何类型,包括数字数组或其他单元数组

听起来您想要的是创建一个单元格数组,其中每个元素都是一个字符串


实际上,如果我对数组使用strcmp函数,意味着我将在一步中得到结果。否则我必须迭代循环。请添加一个MCVEa向量本身就是一个数组。这个问题没有意义。请显示一些你想做的不起作用的代码,并将错误信息复制粘贴到问题中。显示总是比告诉好。你的“向量”是一个2D字符数组(尝试在上面使用
size
)。您的“数组”是由字符数组组成的单元格数组。你可以使用
array=cellstr(vector)
@tasospapastylateanou将第一个转换成第二个,至少他们复制了广播(我认为他们称之为隐式扩展)的方式,这正是GNU八度音程的方式it@Tasos:“我喜欢matlab在尝试使倍频程不兼容时的创造性。”。我打赌很快他们就会有一个新的接线员
#
,只是为了好玩。嗨@TasosPapastylianou,谢谢你的回复。信息量很大。我在上面的问题中添加了一个截图。您能检查一下图像中数组和向量的行为之间的差异吗?我已经清楚地提到了我的问题。我会再次重复我的问题。我有一个向量['hi','hello','good','bad'],我想检查给定的字符串在向量中是否可以使用'hello'。我正在使用strcmp,但它没有给我一个有用的输出。但是,数组真的很有用:{'hi','hello','good','bad'}这就是我想知道的原因way@ShankarMuthusamy:请注意此处的示例代码。你在评论中说
['hi'、'hello'、'good'、'bad']
,但是你的代码有
['hi';'hello';'good';'bad']
。这些是不同的!逗号表示水平连接,分号表示垂直连接。因此,
['hi';'hello';'good';'bad']
实际上是一个向量,但它只是一个长字符串,这不是您想要的<代码>['hi';'hello';'good';'bad']不是向量:它是一个带填充的二维单元数组。也不是你想要的。@ShankarMuthusamy:这是另一种看待它的方式。在八度音阶中,“向量”不是一种类型。“向量”是我们用来描述数组形状的一个词。除一个元素外,所有维度中长度为1个元素的任何数组都称为“向量”。你可以把它想象成“向量”,是以八度为单位的一维数组的单词。(除了它们不是真正的一维,因为所有的倍频程数组实际上至少都是二维的,所以要做一维数组,我们只需沿一维将其设为1长,然后忽略该维。)