
Write constraints in MATLAB
    4 views (last 30 days)
  
       Show older comments
    
Hello friends, have a good time I have one limitation: โโ๐๐ด (๐๐, ๐๐, ๐)< ๐๐ (๐๐) I wrote it as follows, but since the dimensions of the matrices are different, it does not work, how can I write it?
const1=zeros(aa,1);
for aa=1:AA
    for bb=1:BB
        for m=1:M
            const1(aa)=pop(it,np).arthvar.PA(m,aa,bb)-PN(aa);
            if const1(aa)>0
                const1(aa)=abs(const1(aa));
            else
                const1(aa)=0;
            end
        end
    end
end
0 Comments
Answers (1)
  Walter Roberson
      
      
 on 26 Aug 2021
        Why are taking abs() of something that you just tested and found to be greater than 0?
You can replace your current if logic with
const1(aa) = max(pop(it,np).arthvar.PA(m,aa,bb)-PN(aa), 0);
... but where are you taking the sum? It is the double sum that needs to be < 

for aa = 1 : AA
   const1(aa) = max(0, sum(pop(it,np).arthvar.PA(:,aa,:), 'all') - PN(aa));
end
That can be vectorized even further to avoid the loop.
0 Comments
See Also
Categories
				Find more on Genetic Algorithm in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
