Установить указанные индексы в ноль - PullRequest
3 голосов
/ 10 марта 2011

У меня есть две матрицы (x1 и x2) одинакового размера. Я хотел бы использовать элементы, равные нулю, в x1, чтобы положить те же элементы в ноль в x2.

Теперь у меня есть нерабочее решение:

[i j] = find(x1 == 0);
x2(i,j) = 0;

У меня также есть рабочее решение:

[i j] = find(x1 == 0);
for n=1:length(i)
    x2(i(n),j(n)) = 0;
end

спасибо!

1 Ответ

2 голосов
/ 10 марта 2011

Попробуйте x2(x1 == 0) = 0.Например:

>> x1 = rand(5, 5)

x1 =

    0.4229    0.6999    0.5309    0.9686    0.7788
    0.0942    0.6385    0.6544    0.5313    0.4235
    0.5985    0.0336    0.4076    0.3251    0.0908
    0.4709    0.0688    0.8200    0.1056    0.2665
    0.6959    0.3196    0.7184    0.6110    0.1537

>> x2 = randi(2, 5, 5) - 1

x2 =

     0     1     1     0     1
     0     1     0     0     1
     1     1     1     1     0
     0     1     1     1     1
     1     0     0     0     0

>> x1(x2 == 0) = 0

x1 =

         0    0.6999    0.5309         0    0.7788
         0    0.6385         0         0    0.4235
    0.5985    0.0336    0.4076    0.3251         0
         0    0.0688    0.8200    0.1056    0.2665
    0.6959         0         0         0         0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...