我想在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)
如果有人可以帮助我,我会很高兴。
您可以将类似的语法用于带有结构的“列”索引
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也可能从八度缺少。但是,在该缺少的链接中,您可以找到几个等效功能的附件。