Как назначить подуровень для нескольких полей среднего уровня в структуре - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь назначить подполе для каждого элемента поля.

Это достижимо с помощью цикла for, как показано ниже, однако я хотел бы векторизовать код.

n   = 3;
for i=1:n
    mesh.elem(i).x(1) = i;
    mesh.elem(i).x(2) = i^2;
end

Я исследовал использование сделки и попробовал такие подходы, как:

mesh.elem(1:n).x(1) = (1:n)-1;

, но всегда получал ошибки.

1 Ответ

2 голосов
/ 31 октября 2019
n = 3;
exponents = 1:2;
values = bsxfun(@power, (1:n)', exponents);
values = num2cell(values, 2);
[mesh.elem(1:n).x] = deal(values{:});

Что вам дает:

>> mesh.elem.x

ans = 
    1    1


ans = 
    2    4


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