2 Errors: Conversion to double from function_handle is not possible and attempt to reference field of non-structure array.

What mistake am I making here?
clc
x0 = [0.01, 1, 10 + 273.15, 8, 1];
options = optimset('PlotFcns',@optimplotfval);
fitnessfcn = @(x)Lobo(x(1), x(2), x(3), x(4), x(5));
[X, fval] = gamultiobj(fitnessfcn, 5, [], [], [], [], [], [], options);
X
disp(X);
d0 = 0.01:10;
Qr{:,1} = @(x)Lobo(x(1), x(2), x(3), x(4), x(5));
plot (d0,Qr{:,1});
xlabel('(d0)');
ylabel('flux (qr)');

4 Comments

What is this?
Qr{:,1} = @(x)Lobo(x(1), x(2), x(3), x(4), x(5));
See earlier questions:
@Devdatt Thengdi: the function plot plots numeric data. The variable Qr is cell array or table containing a function handle. If you want to use plot then you will need to generate numeric data first, else you could use ezplot or fplot to plot the function.
@Devdatt Thengdi: call that function! If the function has been written using vectorized code then simply call it with a vector of the independent variable values. If the function is not vectorized use a loop or arrayfun.
You might like to try using ezplot first.
I used fplot. New error:
Attempted to access x(2); index out of bounds because numel(x)=1.

Sign in to comment.

Answers (0)

Categories

Asked:

on 13 Mar 2018

Commented:

on 13 Mar 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!