Обновление одного поля в каждом элементе массива структур Matlab

Предположим, у меня есть массив структур arr , где каждый элемент имеет кучу поля, в том числе одно под названием val . Я хотел бы увеличить поле каждого элемента val на некоторую постоянную величину, например:

for i = 1:length(arr)
    arr(i).val = arr(i).val + 3;
end

Это, очевидно, работает, но я считаю, что должен быть способ сделать это всего в одной строке кода (и нет для цикла). Лучшее, что я придумал, - это две строки, требующие временной переменной:

newVals = num2cell([arr.val] + 3);
[arr.val] = deal(newVals{:});

Есть идеи? Спасибо.

19
задан Amro 6 July 2014 в 21:09
поделиться