Execution of for loop and indexing of strucutres

Hi,
I am trying to run the following command inside a for loop:
if A(p,1)== B(:,1)
My question: Is every row of B is being compared to A in one running of the loop?
Regards, Waqas

5 Kommentare

Not clear
Can you show the loop indexing line also?
Waqas Syed
Waqas Syed am 10 Jul. 2015
Bearbeitet: Image Analyst am 10 Jul. 2015
Sorry for the vague question...Here is the code snippet.
n=0;
for p=1:length(MainWPR_mpc.branch)
for q=1:length(Reus.bus)
if MainWPR_mpc.branch(p,1)== Reus.bus(:,1)
if MainWPR_mpc.branch(p,2)== Reus.bus(:,1)
Reus.branch(n,:)= MainWPR_mpc.branch(p,:);
n=n+1;
end
end
end
end
Can you describe, in words, what this test is supposed to do?
if MainWPR_mpc.branch(p:1)== Reus.bus(:,1)
The (p:1) indexing definitely does not look right. Nor does the (p:2) indexing in the following line.
Waqas Syed
Waqas Syed am 10 Jul. 2015
Sorry, it was supposed to be a comma instead of a colon. Apologies for that.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Image Analyst
Image Analyst am 10 Jul. 2015
MainWPR_mpc.branch(p,1) == Reus.bus(:,1)
produces a boolean vector, a list of true false values, not just a single one. So if you do that, you have to decide exactly what you're testing. What if you get 3 true and 5 false, like [1,0,0,1,1,0,0,0]? What do you want to do then? If you want ALL to be true, use all(). If you want to check if ANY of them is true, use any:
if all(MainWPR_mpc.branch(p,1)== Reus.bus(:,1))
if any(MainWPR_mpc.branch(p,1)== Reus.bus(:,1))
I don't know which way you want it.

Weitere Antworten (1)

James Tursa
James Tursa am 10 Jul. 2015
Bearbeitet: James Tursa am 10 Jul. 2015

0 Stimmen

Is p the loop index?
A(p:1) could be empty or could be a scalar depending on what p is. B(:,1) is the first column of B. In an "if" test, the == would mean that all of the elemental results would need to be non-zero for the if-test to evaluate as true. I.e., all of the elements of the first B column would have to equal A(p:1) for the if-test to evaluate as true.
That being said, A(p:1) doesn't look right for what you probably intended and I would re-examine your code.

1 Kommentar

Waqas Syed
Waqas Syed am 10 Jul. 2015
Sorry, it was supposed to be a comma instead of a colon. Apologies for that.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by