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.

 Akzeptierte Antwort

KSSV
KSSV am 31 Jul. 2017

0 Stimmen

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 Kommentare

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. :)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by