将Matlab列数组转换为Java数组:转置问题

时间:2017-07-12 15:43:45

标签: java arrays matlab matrix

我知道这不太清楚,所以我会尽力解释这里的情况。

我有一个Matlab数组,比如:array = [1,2 ; 3,4]。所以基本上这是一个4x4矩阵。

我有一个java类,其目标是将matlab矩阵转换为java数组。这个类有两个构造函数:

MatlabArray( double[] array );
MatlabArray( double[][] array );

此类有一个成员来存储数组值:

double[][] values

该类与matlab矩阵(两个大小> 1),matlab单例(1x1)和matlab行(1x2,1x5等等)完美配合。

但是当涉及到列矩阵时,这里出现了垮台,基本上一条线或一个列矩​​阵仍然是一个二维数组,只是它的一个维度是1。

当调用java构造函数时,被调用的那个最终成为:

MatlabArray( double[] array );

这会导致java数组成为LINE矩阵。假设我有以下Matlab矩阵说:array = [1;2;3;4],那么转换的java数组将是array = {1,2,3,4}

丢失一致性会导致以后崩溃,因为用于访问不同数组中的值的索引不再匹配。

以前我们有一个解决方法(人们知道这个问题何时到来,他们正在反转索引)。解决方法,当然我摆脱了。

我正在寻找以优雅的方式解决这个问题的想法,我可以在构造函数中指定维度,但我宁愿避免这种情况。

感谢您的帮助

0 个答案:

没有答案