I finally got the result for the function to minimize, but it´s still in sym class, so it doesnt let me evaluate it for optimization. but it doesnt let me convert the variables p to double class, so that the optimization algorithm can input values in it.
How can i create a multivariable function from matrix data?
    6 views (last 30 days)
  
       Show older comments
    
    Natanael Acencio Rijo
 on 4 Dec 2013
  
    
    
    
    
    Commented: sixwwwwww
      
 on 4 Dec 2013
            Hi i´m new to matlab. Im trying to create a program that reads data out of a matrix and assigns those values to variables. the issue is that this must be a function for which im going to evaluate its minima, so i cannot define p.
My problem is of this kind:
im going to evaluate the minimum value possible of p
A=[150;
   200;
   300;]
I want to generate this from the previous data:
f(1)=A(1,1)*p(1)
f(2)=A(2,1)*p(2)
f(3)=A(3,1)*p(3)
resulting at the end that
Totalcost= f(1)+f(2)+f(3); which will a multivariable function.
I tried to use a for loop in this case but it doesnt let me assign the values in the parenthesis to the p, to make it a different variable. it keeps telling me that i´m reffering to a value that has been cleared.
what i want to know is: which commands can i use to assign values to the p as a variable of a multivariable function?
1 Comment
Accepted Answer
  sixwwwwww
      
 on 4 Dec 2013
        
      Edited: sixwwwwww
      
 on 4 Dec 2013
  
      if you have symbolic toolbox installed then you can do it as follows:
A = [150; 200; 300]; 
p = sym('p%d', [1 numel(A)]);
for i = 1:numel(A)
    f(i) = A(i) * p(i);
end
Totalcost = sum(f(:));
disp(Totalcost)
7 Comments
  sixwwwwww
      
 on 4 Dec 2013
				you need to subsitutute values for symbols p(1), p(2), ... then you can get numeric values in symbols which you can convert to double type using doouble()
More Answers (1)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

