Obtaining a sub-matrix based on some condition

Hello, I have a 10*3 matrix. 1st column represents Type of load(T), 2nd & 3rd are active(P) and Reactive (Q) Power loads. T columns contains 1, 2, 3 numbering indicating residential, commerial and industrial type of load.
Now, i just want a P and Q column such that if T=1, i wanted to multiply corresponding row of P & Q values with 3, similary if T=2 (and T=3), i wanted to multiply corresponding row of P & Q with 5 and 7 respectively. finally, i want a matrix 10*2, which contains only P&Q columns. i have attached document for better understanding. Please help me in this regards.

 Réponse acceptée

KSSV
KSSV le 31 Juil 2017
L = [1 2 1 3 3 3 1 3 1 2 ;400 40 90 80 55 45 35 40 30 20 ; 60 30 0 15 55 0 30 30 15 20]';
iwant = zeros(size(L)) ;
idx = unique(L(:,1)) ;
Val = [3 5 7] ;
for i = 1:length(idx)
pos = L(:,1)==idx(i) ;
iwant(pos,:) = [L(pos,1) Val(i)*L(pos,2) Val(i)*L(pos,3)] ;
end

3 commentaires

Hello Sir, Thanks for the your speedy response. Am facing some error in the statement below. my file name is loadvary
Error in loadvary (line 30) iwant(pos,:) = [L(pos,1) Val(i)*L(pos,2) Val(i)*L(pos,3)]
Attempted to access Val(4); index out of bounds because numel(Val)=3.
Error in loadvary (line 30) iwant(pos,:) = [L(pos,1) Val(i)*L(pos,2) Val(i)*L(pos,3)]
Sir, Thank you. I got it. your answer was right. there was some mistake with my matrix. :)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Symbolic Math Toolbox dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by