Info

此问题已关闭。 请重新打开它进行编辑或回答。

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

1 次查看(过去 30 天)
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.

回答(1 个)

Walter Roberson
Walter Roberson 2018-2-1
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)

此问题已关闭。

Community Treasure Hunt

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

Start Hunting!

Translated by