Insufficient number of outputs from right hand side of equal sign to satisfy assignment

clc;
clear all;
define_constants;
tic
global FPA Lb Ub Q1 result
fprintf('\nReal Power Loss Minimization\n');
mpc = loadcase('case_ieee30');
NB=length(mpc.bus(:, PD));
NL=length(mpc.branch(:, 1));
NG=length(mpc.gen(:,1));
fprintf('\nLoad Flow Analysis Using Newton Raphson Method\n');
opt = mpoption('VERBOSE',0,'OUT_ALL', 0);
results=runpf(mpc,opt);
PL=sum(results.branch(:, PF)+ results.branch(:, PT));
fprintf('\nReal power loss %9.4f MW\n',PL);
fprintf('\nLoss Minimization Using Flower Polination Algorithm\n');
% Dimension of the search variables
Dim=12; popsize=50; N_iter=200;
Lb=[50 20 15 10 10 12 0.95 0.95 0.95 0.95 0.95 0.95];
Ub=[200 80 50 35 30 40 1.1 1.1 1.1 1.1 1.1 1.1];
[result , MinCost] = FPA(Dim,popsize,N_iter,Lb,Ub); // ERROR OCCURS HERE
This program is about using FACTS devices and Flower Pollination Algorithm but when I try to run this code I get error
ERROR:
Insufficient number of outputs from right hand side of equal sign to satisfy assignment.
Error in File (line 21)
[result , MinCost] =FPA(Dim,popsize,N_iter,Lb,Ub);

4 Comments

You did not ask a question. The error message is clear: FPA does not reply 2 outputs. Why do you expect 2 outputs?
I'm new to this , I don't know how to debug this, I've viewed several solutions but I couldn't get any. Could you please help me with this. Thank you
On top of the code you have defined FPA as a global variable. Maybe it is an array or a function handle. I cannot guess this detail. If it is a function, read the corresponding documentation, which explains the number of outputs.
Global variables are a bad design, because they cause more troubles then they solve.

Sign in to comment.

Answers (1)

Hi,
As per my understanding, you are getting an 'Insufficient number of outputs from the right-hand side of equal sign to satisfy assignment' error. The error indicates that the right-hand statement, i.e. FPA(), is giving fewer outputs than the number of outputs you are trying to assign, which is [result, MinCost].
The possible workaround for this would be to remove one of the output variables. If you are not sure about the output argument of the function FPA(), it would be best to check out the documentation.

Categories

Find more on Programming in Help Center and File Exchange

Asked:

on 20 Dec 2020

Commented:

on 28 Sep 2021

Community Treasure Hunt

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

Start Hunting!