How we can use fminsearch with a vector as input and return a scaler as an output?

Illustration
Eamon - 2023-06-12T12:13:01+00:00
Question: How we can use fminsearch with a vector as input and return a scaler as an output?

Hello, I have the objective function and I want to minmize this gradiant. e is a vector of ones and y is a vector of size . The . I want find that minmize this objective function. Here is my attempt: y = rand(1000, 1); % Random target values e = ones(size(y)) global y My target function is : function gradient = gradient(h) global y gradient = 2 * (h*ones(size(y)) - y); end and then calling the function into fminsearch to get the result by : mu_y = fminsearch( @(h)gradient(h),0); and I got the error massage : >> mu_y = fminsearch( @(h)gradient(h),0); Unable to perform assignment because the size of the left side is 1-by-1 and the size of the right side is 1000-by-1. Error in fminsearch (line 201) fv(:,1) = funfcn(x,varargin{:}) Can someone please help in this problem thanks.

Expert Answer

Profile picture of Kshitij Singh Kshitij Singh answered . 2025-11-20

y is 1000 x 1.
 
You are passing scalar 0 as the initial value for fminsearch() so at each step h will be 0 inside your gradient function.
 
gradient = 2 * (h*ones(size(y)) - y);
ones(size(y)) is 1000 x 1. h is scalar and scalar * 1000 x 1 is 1000 x 1. Subtract the 1000 x 1 y and you get a 1000 x 1. Multiply that by 2 and you get 1000 x 1 that is returned.
 
However fminsearch requires that you return a scalar.
 
You need to return something closer to
 
gradient = sum(2 * (h*ones(size(y)) - y).^2);
Note though that scalar * ones(size(y)) - y is going to give you the same result as (h - y) -- the scalar would automatically be replicated to the size of y.
 
I suspect that your should be a 1 x 1000 vector. Because if not, then you can calculate the optimal h without using fminsearch() by using calculus:
 
numel(y)*4*h == 4*sum(y) ---> h = sum(y)/numel(y) --> h = mean(y)

 


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!