В контексте написания определенной функции, я в следующем примере матрица:MATLAB найти первые элементы в столбцах массива
temp =
1 2 0 0 1 0
1 0 0 0 0 0
0 1 0 0 0 1
Я хочу, чтобы получить массив, каждый элемент указывает номер элемента из всех ненулевых элементов, которые начинают этот столбец. Если столбец пуст, элемент должен соответствовать следующему непустому столбцу. Для матрицы temp
, результат был бы:
result = [1 3 5 5 5 6]
Поскольку первый ненулевой элемент начинает первый столбец, третий начинает второй столбец, пятый начинает пятую колонну и шестой начинается шестой столбец.
Как я могу выполнить эту операцию для любой общей матрицы (такой, которая может содержать или не содержать пустые столбцы) в векторном виде?
Я бы не назвал колонку, заполненную нулями «Пустая» столбца. Пустой столбец будет, например, средний столбец [[1; 3], [], [2; 4]] – Nibor
@Nibor MATLAB не обрабатывает матрицы неправильной формы, например, имеет промежуток в середине. В юниверсе MATLAB наличие столбца всех нулей является правильной терминологией для пустого. – rayryeng
Я предполагаю, что вы считаете свои ненулевые элементы в основном порядке столбцов? – excaza