О матричной индексации - PullRequest
1 голос
/ 12 марта 2020

У меня Нулевая матрица P размера (16,16); Мне нужно заменить первые 4 строки в столбцах 1: 4: конец на 1, затем следующие 4 строки в столбцах 2: 4: конец на один и так далее. Я сделал это, но заметил, что во вторых строках они повторяются в столбцах 1 и 2, однако я хочу, чтобы они были только в столбцах 1: 4: конец.

Вот код, который я сделал:

P = zeros(16,16); 
for i = 1 : 4 
    P(i:i*4,i:4:end)=1; 
end

Не могли бы вы помочь решить эту проблему. ?

1 Ответ

3 голосов
/ 12 марта 2020

Сдвиг выбранной строки на (ii-1)*4

P = zeros(16,16); 

for ii = 1:4 
    P([1:4]+(ii-1)*4,ii:4:end)=1; 
end

КСТАТИ: Избегайте использования i в качестве переменной, поскольку это встроенная функция matlab, которая возвращает мнимую единицу.

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