我想在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
要创建我的输出变量,我在MATLAB中使用以下代码。
data = table;
data.Rotationangle = cell2mat(raw(:, 1));
data.Measureddistance = cell2mat(raw(:, 2));
然后在Octave中出现以下错误。
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
我的问题是,现在是否有机会替换Octave中的表函数?我试图找到使用Octave data frame
软件包的解决方案,但实际上并没有能力。
在同一脚本中,我还使用了table2array
函数,该函数尚未在Octave中实现,以后也会发生错误。
data = table2array(data);
如果有人可以帮助我,我会很高兴。
答案 0 :(得分:5)
您可以为结构的“列”索引使用类似的语法
data = struct;
data.var1 = [1;2;3;4];
data.var2 = [5;6;7;8];
但是,您失去了许多MATLAB中可用的表特定操作。
如果您具有上述数据,则可以使用struct2array
而不是table2array
转换为矩阵
data = struct2array( data );
无论如何,如果您使用table2array
,最终将得到一个矩阵,那么为什么不首先坚持使用矩阵呢?如果您的所有数据都是数字数据,则通常操作起来会更快。
data = [cell2mat(raw(:,1)), cell2mat(raw(:,2))];
编辑:看来struct2array
也可能是八度的missing。但是,在该缺少的链接中,您可以找到等效功能的几个附件。
答案 1 :(得分:0)
我邀请您尝试我的Tablicious软件包,该软件包提供了table
,datetime
和相关类的与Matlab兼容的Octave实现。