MATLAB: How to rearrange multiple results of a function without using for loop

alternative to for loop

Hi there,
I created function Array(k) which produces an array of 1xN element for the input k.
N = 115824;
Array = linspace(1*k,k*N,N)
I want to apply that function to an array of k = 1:115824. I tried with for loop it but it's very slow.
for k = 1:N
result(k,1:N) = Array(k);
end
Are there any other way to do this task faster and still give me the result as that for loop?
Thank you

Best Answer

  • Assuming that the initial value of k = 1, then it can be avoided using the
    repmat
    command as follows (see vector B),
    N = 11;
    k=1;
    Array = linspace(1*k,k*N,N)';
    for k=1:N
    result(k,1:N) = Array(k);
    end
    B = repmat(Array,[1 N])