Приведем несколько примеров. Будем использовать следующий комплексный массив A:
double[][] Rdata = {{ 2, 3, 4},
{ 8 , 9, 10},
{14, 15, 16}}; double[][] Idata = {{ 6, 5, 14},
{ 7 , 1, 23},
{ 1, 1, 9}};
MWNumericArray A = new MWNumericArray(Rdata, Idata, MWClassID.DOUBLE); System.out.println("Complex matrix A = "); System.out.println(A.toString());
Полученный комплексный массив:
2.0000 + 6.0000i 3.0000 + 5.0000i 4.0000 + 14.0000i 8.0000 + 7.0000i 9.0000 + 1.0000i 10.0000 + 23.0000i 14.0000 + 1.0000i 15.0000 + 1.0000i 16.0000 + 9.0000i
Пример. Используем get и getlmag для чтения вещественной и мнимой частей элемента с индеками (2, 3): int[] index = {2, 3};
System.out.println("The real part of A(2,3) = " +
A.get(index)); System.out.println("The imaginary part of A(2,3) = " +
A.getImag(index) );
После выполнения пример отображает следующее:
The real part of A(2,3) = 10.0
The imaginary part of A(2,3) = 23.0
Пример. Получение комплексных данных определенного типа (double) элемента массива A. int[] index = {2, 3};
System.out.println("The real part of A(2,3) = " +
A.getDouble(index)); System.out.println("The imaginary part of A(2,3) = " +
A.getImagDouble(index) );
После выполнения примера получается следующий вывод
The real part of A(2,3) = 10.0
The imaginary part of A(2,3) = 23.0
Метод getImagData. Этот метод возвращает одномерный MWNumericArray содержащий копию мнимых частей данных в основном массиве MATLAB. Метод getImagData возвращает одномерный массив в постолбцовом порядке. Элементы преобразуются согласно правилам преобразования значений по умолчанию.
Пример. Получение всех вещественных и мнимых частей данных из комплексного массива A.
int[] index = {2, 3}; double[] x;
System.out.println("The real data in matrix A is:");
x = (double[]) A.getData(); for (int i = 0; i < x.length;
System.out.print(" " + x[i]);
System.out.println(); System.out.println("The imaginary data in matrix A is:"); x = (double[]) A.getImagData(); for (int i = 0; i < x.length;
System.out.print(" " + x[i]);
После выполнения примера получается следующий вывод
The real data in matrix A is:
2.0 8.0 14.0 3.0 9.0 15.0 4.0 10.0 16.0 The imaginary data in matrix A is:
6.0 7.0 1.0 5.0 1.0 1.0 14.0 23.0 9.0
Метод toImagArray. Этот метод возвращает массив, содержащий копию мнимых частей данных массива MATLAB.
Пример. Получение массива мнимых частей комплексных данных используя toImagArray.
double[][] x = (double[][]) A.toImagArray();
int[] dimA = A.getDimensions();
System.out.println("The imaginary part of matrix A is:");
for (int i = 0; i < dimA[0]; i++)
{
for (int j = 0; j < dimA[1]; j++)
System.out.print(" " + x[i][j]); System.out.println();
}
После выполнения пример отображает следующее:
The imaginary part of matrix A is: 6.0 5.0 14.0 7.0 1.0 23.0 1.0 1.0 9.0
Методы копирования, преобразования и сравнения массивов MWNumericArray