Só faltou vc adicionar a lógica dentro dos loops. Seria algo assim:
if (i < j)
matriz[i][j] = 0;
else
matriz[i][j] = (i + j) * 2;
Ou tudo numa linha só:
matriz[i][j] = i < j ? 0 : (i + j) * 2;
Só que com essa lógica vc nunca vai conseguir o resultado que vc quer. No resultado que vc mostrou há numeros impares, mas qualquer multiplicação por 2 vai resultar num número par.
Ou seja, sempre vai sair 0 ou um número par.
E com 5 linhas e 4 colunas, o máximo que vc vai conseguir é o valor 14.
i = 4;
j = 3;
i + j = 7;
7 * 2 = 14;
Será que não está faltando informação?
Experimenta colocar um print dentro dos loops pra vc acompanhar o que acontece passo a passo:
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[0].length; j++) {
matriz[i][j] = i < j ? 0 : (i + j) * 2;
System.out.printf("i: %d, j: %d, result: %d\n", i, j, matriz[i][j]);
}
}
E na hora de apresentar a matriz, experimenta isso pra ficar mais facil de ler e interpretar:
int v[][] = matrizMN(5, 4);
for (int i = 0; i < v.length; i++) {
for (int j = 0; j < v[0].length; j++)
System.out.printf("%3d", v[i][j]);
System.out.println();
}
Os resultados apresentados no exemplo não são multiplicação por 2 mas sim quadrados. E não precisas do if, a matriz já é inicializada com todos os valores a zero, basta preencher os restantes:
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j <= i; j++) { // só queremos preencher até j=i, a partir daqui é zero porque i<j
matriz[i][j] = (i + j) * (i + j); // assumi quadrado pelo exemplo. Se for realmente *2, é só trocar aqui
}
}
O problema que eu vi é que se vc colocar j <= i vai causar um java.lang.ArrayIndexOutOfBoundsException se i for maior que j.
Para corrigir eu pensei em 2 formas. Assim:
static int[][] matrizMN(int M, int N) { // @formatter:off
int[][] matriz = new int[M][N];
for (int i = 0; i < M; i++) {
for (int j = 0; j <= i; j++) {
if (j == N) break;
matriz[i][j] = (i + j) * (i + j);
}
}
return matriz;
}
Ou assim:
static int[][] matrizMN(int M, int N) {
int[][] matriz = new int[M][N];
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
if (i >=j)
matriz[i][j] = (i + j) * (i + j);
}
}
return matriz;
}