如何在Octave中替换MATLAB函数表和table2array?

Mar*_*arc 2 matlab octave

我想在Octave中运行我的MATLAB脚本,但是该table功能在Octave中尚不存在问题。

我要使用的表的摘录如下:

Rotation angle  Measured distance
-0,342  0,000
-1,440  0,000
-10,422 0,000
-11,574 0,000
-21,060 0,000
-21,528 0,000
-30,402 0,000
Run Code Online (Sandbox Code Playgroud)

为了创建我的输出变量,我在MATLAB中使用以下代码。

data = table;
data.Rotationangle = cell2mat(raw(:, 1));
data.Measureddistance = cell2mat(raw(:, 2));
Run Code Online (Sandbox Code Playgroud)

在八度,然后出现以下错误。

warning: the 'table' function is not yet implemented in Octave

Please read <https://www.octave.org/missing.html> to learn how you can
contribute missing functionality.
error: 'table' undefined near line 102 column 8
error: called from
    Cloud_reconstruction at line 102 column 6
Run Code Online (Sandbox Code Playgroud)

我的问题是,现在是否有机会替换Octave中的表函数?我试图找到一个使用Octave data frame软件包的解决方案,但实际上并没有能力。

在同一脚本中,我还使用了table2array尚未在Octave中实现的函数,以后也会发生错误。

data = table2array(data); 
Run Code Online (Sandbox Code Playgroud)

如果有人可以帮助我,我会很高兴。

Wol*_*fie 5

您可以将类似的语法用于带有结构的“列”索引

data = struct;
data.var1 = [1;2;3;4];
data.var2 = [5;6;7;8];
Run Code Online (Sandbox Code Playgroud)

但是,您会丢失很多MATLAB中可用的特定于表的操作。

如果您具有上述数据,则可以使用struct2array代替table2array转换为矩阵

data = struct2array( data );
Run Code Online (Sandbox Code Playgroud)

如果仍然使用table2array矩阵,那么最终会得到矩阵,那么为什么不首先坚持使用矩阵呢?如果您的所有数据都是数字数据,则通常可以更快地进行操作。

data = [cell2mat(raw(:,1)), cell2mat(raw(:,2))];
Run Code Online (Sandbox Code Playgroud)

编辑:它似乎struct2array也可能从八度缺少。但是,在该缺少的链接中,您可以找到几个等效功能的附件。