user2922967
user2922967

Reputation: 21

Fill matrix with function values in Matlab

I've got 3 functions, oe1(n), oe2(n) and oe3(n).

I want to create a matrix representing the function values.

The structure of the matrix should be like this:

A = [oe1(0) oe2(0) oe3(0); oe1(1) oe2(1) od3(1); ...... ; oe1(N-1), oe2(N-1), oe3(N-1)];

I've tried filling it with a for loop, but it does not work.

Is there a standard Matlab operation for this? I really can't figure out how to do it.

Anders.

oe1(n1) = sin(2*pi*F*n1+phi)
oe2(n1) = ones(length(n1),1);
oe3(n1) = n1*Ts

pol = (oe2)'

vector_x = [a; b; c];
vector_veardier = [oe1(n1), 1, oe3(n1)]
xi = 1:N-1;


for i = 2:N-1;     
   for j = 1:3    
      vector_veardier(i, j) = oe1(j);    
   end    
end

Upvotes: 1

Views: 1848

Answers (1)

Lanting
Lanting

Reputation: 3068

Do your functions accept vectors? If so you can use:

A = [oe1((1:N)'), oe2((1:N)'), oe3((1:N)')];

but otherwise you might have to use arrayfun:

A = [arrayfun(@oe1, (1:N)'), arrayfun(@oe2, (1:N)'), arrayfun(@oe3, (1:N)')];

Note that in your provided code you have not defined oeN as functions, but as some kind of array with a value inserted at position n1.

One way to do it with a for loop would however be:

A = zeros(N,3);
for i = 1:N,
  A(i,:) = [oe1(i), oe2(i) oe3(i)];
end

Upvotes: 3

Related Questions