フィルターのクリア

Info

この質問は閉じられています。 編集または回答するには再度開いてください。

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

1 回表示 (過去 30 日間)
PRANAY DISHAN
PRANAY DISHAN 2018 年 2 月 1 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
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