BD_teste = [BD_teste; grupos.(['g',int2str(l)]).('elementos')(ind_element,:),l];
Одна очень странная строка. Давайте разберем его на части:
int2str(l)
возвращает число l
в виде массива char (будет охватывать от '1'
до k).
['g',int2str(l)]
возвращает массив charg1
, затем g2
и т. Д. Вместе со значением l
.
grupos.(['g',int2str(l)])
вернет значение поля с именем g1
, g2
и т. Д., Которое принадлежиттеперь структура grupos
.
grupos.(['g',int2str(l)]).('elementos')
предполагает, что grupos.(['g',int2str(l)])
сама является структурой, и возвращает значение ее поля с именем 'elementos'.
grupos.(['g',int2str(l)]).('elementos')(ind_element,:)
Предполагая, что grupos.(['g',int2str(l)])
- это матрица, эта строка возвращает линейный вектор, содержащий ind_element
-ю строку указанной матрицы.
grupos.(['g',int2str(l)]).('elementos')(ind_element,:),l
добавляет число 1 к вектору, полученному ранее.
[BD_teste; grupos.(['g',int2str(l)]).('elementos')(ind_element,:),l]
добавляет вектор-строку [grupos.(['g',int2str(l)]).('elementos')(ind_element,:),l]
к матрице BD_teste
внизу. и создает новую матрицу.
Наконец: BD_teste = [BD_teste; grupos.(['g',int2str(l)]).('elementos')(ind_element,:),l];``assignes the value of the obtained matrix to the variable
BD_teste`, перезаписывая его предыдущее значение. По сути, это просто добавляет новую строку, но из-за шага перезаписи это не очень эффективно.
Рекомендуется добавить: BD_teste(end+1,:) = [grupos.(['g',int2str(l)]).('elementos')(ind_element,:),l];
Теперь, как вы будетепереписать это в Python - это совсем другая история, и будет зависеть от того, как вы хотите определить переменную grupos
в основном.