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에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!