Comparing values from structure to a scalar
이전 댓글 표시
for i=1:15
A(i).A = [randi(10, 10, 1), rand(10,1)];
for j=1:10
mpc = loadcase('case14');
results(i).A(j) = runpf(mpc);
end
end
Is there a way to add the following constraint in the for loop (the one with j=1:m):
if results(i).A.bus(:,8)>1.1
A(i).A(j,2) = rand(10,1);
results(i).A(j) = runpf(mpc);
end
I tried with that code above and it didn't work, those results were higher than 1.1 again.
답변 (1개)
James Tursa
2015년 9월 11일
편집: James Tursa
2015년 9월 11일
Considering this line:
if results(i).A.bus(:,8)>1.1
It looks like a vector expression to me, which means it is equivalent to:
if all(results(i).A.bus(:,8)>1.1)
Was that your intention? Or was it your intention to take some action for each individual result > 1.1 ?
Also, this action doesn't look right:
A(i).A(j,2) = rand(10,1)
It looks like you are assigning a 10 x 1 column vector to a scalar element.
댓글 수: 4
Drazen Tubic
2015년 9월 11일
Drazen Tubic
2015년 9월 11일
James Tursa
2015년 9월 11일
Does this do what you want?
if any(results(i).A.bus(:,8)>1.1)
Drazen Tubic
2015년 9월 11일
카테고리
도움말 센터 및 File Exchange에서 Logical에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!