Clear Filters
Clear Filters

Info

This question is closed. Reopen it to edit or answer.

HOW TO GET BINARY OUTPUT IN A MATRIX TEMPLATE WITH GIVEN CONDITIONS

1 view (last 30 days)
Hello everyone, I am not able to get the required output. The following is my code and values. Can anyone please resolve this for me. Am working on Particle Swarm Optimization for Inventory Control.
if particle(i).VelocitySIG>particle(i).Random
particle(i).Sol=particle(0).Sol;
else
particle(i).Sol=particle(1).Sol;
end
The values achieved on executing are as follows:
particle(1).VelocitySIG= 0.9709 0.0961 0.7857 0.2967 0.1267 0.9594
particle(1).Random=0.7350 0.9706 0.8669 0.0862 0.3664 0.3692
particle(1).Sol= 1 1 0 1 1 0
The expected values of particle(1).Sol is 1 0 0 1 0 1. But the output is 1 1 0 1 1 0
Please Help... Thank you.

Answers (1)

Walter Roberson
Walter Roberson on 1 Feb 2018
Your line
particle(i).Sol=particle(0).Sol;
attempts to access particle #0, which is an invalid index.
You appear to be testing one a vector VelocitySIG against a vector Random. When you have a statement of the form
if vector > vector2
then in MATLAB the condition is only considered true if all of the values are true,
if all(vector > vector2)

This question is closed.

Community Treasure Hunt

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

Start Hunting!