get indices for part of a matrix
2 ビュー (過去 30 日間)
古いコメントを表示
I have the matrix T, I want to get the indices of a part this matrix. I would imagine using a function of the form:
ind1 = getindexes(T,(1:35,:));
which would get me the indexes for the (1:35,:) part of matrix T. What is the fastest way to do this?
1 件のコメント
Azzi Abdelmalek
2014 年 11 月 8 日
編集済み: Azzi Abdelmalek
2014 年 11 月 8 日
Your question is not clear, you are asking for getting indices that you already have
回答 (1 件)
Star Strider
2014 年 11 月 8 日
編集済み: Star Strider
2014 年 11 月 8 日
I’m not certain what you want to do. Here are two possibilities:
If you want to find the indices of particular elements in a vector or matrix, use the find function. You will probably have to experiment a bit with it to get the result you want.
If you want to get all the elements in the specific rows from 1:35 for all columns of ‘T’, this will work:
Tx = T(1:35,:);
2 件のコメント
Star Strider
2014 年 11 月 8 日
If I define ‘T’ as:
T = randi(10,50,50);
This command:
[IndR,IndC] = find(T(2:35,:));
will return two 1700 columns with the first offset by 1, so that ‘IndR’ would result a vector of [1:34] repeating 50 times. (You would have to provide the offset.)
If you want the indices of particular elements om your matrix that meet specific conditions, for instance >10 and <20, the find function for that becomes:
[Ridx1020,Cidx1020] = find(T>=10 & T<=20);
where ‘Ridx1020’ are the row indices and ‘Cidx1020’ are the corresponding column indices of those value of ‘T’ that meet those criteria. To verify that they meet the criteria (always a good check), this will tell you:
for k1 = 1:length(Ridx1020)
Telm(k1,k1) = T(Ridx1020(k1), Cidx1020(k1));
end
We’ll keep iterating this in the morning.
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!