Hi all,
I am in a trouble :( i do have a matrix of 251*28 that I want to extract the data by giving x and y values (columns(28) and rows(251)). ex
ineedX = find(Xgrid >= 12 & Xgrid <=60); % the extracted data
ineedY = find(Zgrid>= -75 & Zgrid <=-60); % the extracted data
the find command is not working when I want to apply the function as it gives a vector which I want the matrix.
any help? Thanks a lot!

 채택된 답변

Bruno Luong
Bruno Luong 2018년 10월 29일

0 개 추천

Depending on how your data is organized, (you did not tell if x is first index or second) after doing
ineedX = find(Xgrid >= 12 & Xgrid <=60); % the extracted INDEX
ineedY = find(Zgrid>= -75 & Zgrid <=-60); % the extracted INDEX
you should do
DataExtract = Data(ineedX,ineedY)
Where Data is your original matrix. Or the reverse in indexes if you have x in second dimension.

추가 답변 (1개)

KSSV
KSSV 2018년 10월 29일

0 개 추천

A = rand(251,28) ;
A(251,28) % this gives you 251 row and 28 column
Read about logical indexing. Don't use find.It will be slow.
Also read about ind2sub and sub2ind.

댓글 수: 1

Lilya
Lilya 2018년 10월 29일
Thank you so much KSSV.. ur answers are always very helpful

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

질문:

2018년 10월 29일

댓글:

2018년 10월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by