У меня есть матрица 1 x 118, называемая current_load
, которую мне нужно периодически обновлять. Эта матрица находится в основном рабочем пространстве Matlab (как показано ниже в коде).Как передать матрицу по ссылке или получить возвращаемое значение функции
current_loads = zeros(1, 118);
for col=1:118
current_loads(1,col)=10; %// Initially give all nodes a current load of 10
end
recursive_remove(current_loads); %calling function
Этой матрица будет передан вызовом функции recursive_remove
(, показанным ниже).
function updater = recursive_remove(current_load)
current_load(1,3) = 2.6; %// This update can't be seen from main ??
%this function will be called recursively later
end
Но все, что я делаю обновление для этой current_load
матрицы из функции, он не будет обновляться, так как я не знаю, как передать его по ссылке.
Я новичок в Matlab. Я был бы очень признателен, если вы можете показать пример, как обращаться с этим.
Спасибо, что показал мне пример кода. Сейчас очень ясно, что –
просто нужно очистить, что этот ответ проходит по значению, а не по ссылке. – lcjury
спасибо, на самом деле, я всегда путаю двух, только что нашел это, и это объяснило это очень хорошо, сомневаюсь, что я забуду это сейчас ... http://stackoverflow.com/questions/373419/whats-the-difference-between-passing- by-reference-vs-through-value-value – bilaly