我知道这不太清楚,所以我会尽力解释这里的情况。
我有一个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}
丢失一致性会导致以后崩溃,因为用于访问不同数组中的值的索引不再匹配。
以前我们有一个解决方法(人们知道这个问题何时到来,他们正在反转索引)。解决方法,当然我摆脱了。
我正在寻找以优雅的方式解决这个问题的想法,我可以在构造函数中指定维度,但我宁愿避免这种情况。
感谢您的帮助