Obtaining a sub-matrix based on some condition

2 ビュー (過去 30 日間)
Raghavendra Reddy P
Raghavendra Reddy P 2017 年 7 月 31 日
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.

採用された回答

KSSV
KSSV 2017 年 7 月 31 日
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 件のコメント
Raghavendra Reddy P
Raghavendra Reddy P 2017 年 7 月 31 日
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)]
Raghavendra Reddy P
Raghavendra Reddy P 2017 年 7 月 31 日
Sir, Thank you. I got it. your answer was right. there was some mistake with my matrix. :)

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDiscrete Fourier and Cosine Transforms についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by