fun applied to a loop

1 visualización (últimos 30 días)
sensation
sensation el 25 de Mayo de 2018
Comentada: sensation el 25 de Mayo de 2018
Hi, I am struggling to apply my fun to a loop. Any tip? Here is my code:
function T=totalflow(x,N)
T(:)=x(1:N)+x(N+1:2*N);
end
%saved as totalflow.m
and main program:
inFlow = rand(10,3);
x0 = [inFlow; zeros(size(inFlow))];
[N,M] = size(inFlow);
T=totalflow(x0,N);
% this works for only one column on inFlow. I want to get T[10,3] like:
for i=1:M
T(:,i)=totalflow(x0(:,i),N);
end
%this does not work. Any tip? Thanks

Respuesta aceptada

Stephen23
Stephen23 el 25 de Mayo de 2018
Editada: Stephen23 el 25 de Mayo de 2018
function out = totalflow(x,N)
out = x(1:N) + x(N+1:2*N);
end
and
M = rand(10,3);
[R,C] = size(M);
T = nan(R,C);
X = [M;zeros(R,C)];
for k = 1:C
T(:,k) = totalflow(X(:,k),R);
end
  1 comentario
sensation
sensation el 25 de Mayo de 2018
Thanks! So the trick was in preallocating:) I used T = zeros([R,C]); instead of T = nan(R,C). The second did not run on my matlab version (2016a). Thanks!
Cheers

Iniciar sesión para comentar.

Más respuestas (1)

Torsten
Torsten el 25 de Mayo de 2018
Use
% T=totalflow(x0,N);
instead of
T=totalflow(x0,N);
Best wishes
Torsten.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by