код Matlab для Java - PullRequest
       1

код Matlab для Java

1 голос
/ 06 декабря 2011

Имея следующий код в Matlab:

r=  zeros(10,10);
r(:) = x(z);

, учитывая, что "x" - это массив одного измерения, а "z" - это двумерный массив, что делает функция r(:) = x(z); и как я могу реализоватьчто-то похожее в Java?

Ответы [ 2 ]

4 голосов
/ 06 декабря 2011

Во-первых, x (z) берет каждый элемент в 2d-массиве z и использует его в качестве индекса для извлечения данных из x.

Например, х = [1 2] z = [1 1; 1 2] даст результат x (z) = [1 1; 1 2], потому что x (z) действительно [x (z (1,1)) x (z (1,2)); х (z (2,1)) х (z (2,2))]. Поэтому вы должны быть осторожны, чтобы значения в z не превышали размер x, иначе вы получите индекс вне границ.

r (:) = x (z) в основном совпадает с r = x (z).

Чтобы реализовать это в Java, вам понадобится некоторый вид цикла for для элементов в z. В этом цикле вы должны построить 2d-массив, присвоив текущему индексу (i, j) значение в x (z (i, j)).

Надеюсь, это поможет!

0 голосов
/ 06 декабря 2011

Итак, код Java выглядит следующим образом:

for (int i = 0; i < z.length; i++) {
             for (int j = 0; j < z[0].length; j++) {
                y[i][j] = x[z[i][j]];
            }

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...