How do I create an array of a function output?
    57 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    FortuitousMonkey
 el 25 de Feb. de 2018
  
    
    
    
    
    Comentada: Cedrick De Block
 el 10 de Nov. de 2020
            How do I create an array of a function output? Each attempt I've tried it overwrites the value in the array and returns a 1x1 array with the final value calculated as it's value.
I've seen nested list functions or push functions? Which is the best for the below case and how do I implement it?
Apologies if this is a simplistic question, just struggling with this problem.
My function is:
>> m=0:1:3
>> n=0:1:4
>> for a=m
for b=n
res=ack(a,b)
end
end
function res=ack(m,n)
      if m==0
        res = n+1;
      elseif m>0 && n==0
        res = ack(m-1,1);
      elseif m>0 && n>0
        res = ack(m-1,ack(m,n-1));
      end
end
1 comentario
  David Fletcher
      
 el 25 de Feb. de 2018
				
      Editada: Stephen23
      
      
 el 26 de Feb. de 2018
  
			Essentially your problem is very similar to the answer I provided for
Maybe not the 'best' way to do it, but it is pretty much the answer to the problem you are outlining
Respuesta aceptada
  Stephen23
      
      
 el 26 de Feb. de 2018
        Method one: nested loops and indexing
m = 0:3;
n = 0:4;
out = nan(numel(m),numel(n));
for km=1:numel(m)
    for kn=1:numel(n)
        out(km,kn) = ack(m(km),n(kn));
    end
end
giving:
out =
     1     2     3     4     5
     2     3     4     5     6
     3     5     7     9    11
     5    13    29    61   125
Method two: arrayfun:
>> [M,N] = ndgrid(m,n);
>> out = arrayfun(@ack,M,N)
out =
     1     2     3     4     5
     2     3     4     5     6
     3     5     7     9    11
     5    13    29    61   125
2 comentarios
  Cedrick De Block
 el 10 de Nov. de 2020
				hello excuse me,
in your fist example I have a problem with "ack"
matlab doesn't reconise it, is it a function?
Más respuestas (1)
Ver también
Categorías
				Más información sobre Matrix Indexing en Help Center y File Exchange.
			
	Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




