필터 지우기
필터 지우기

Help with isnan with two matrices of unequal dimensions

조회 수: 1 (최근 30일)
Sayantan Sahu
Sayantan Sahu 2018년 1월 15일
답변: Guillaume 2018년 1월 16일
Hi,
I have two matrices of unequal dimensions. pol1 = 1 x 22648 and pol2 has dimensions of 1 X 22706.
I wanted to plot one against the other and I want to check the cells for which both values exist.
I tried good_use=find(~isnan(pol1) & ~isnan(pol2))
but I get an error ' Matrix dimensions must agree '.
How do I solve this error ?
  댓글 수: 4
Guillaume
Guillaume 2018년 1월 15일
"I want to find the indices for which both pol1 and pol2 have values"
You still haven't explained what that means when the two vectors have different length. Using shorter vectors, if
pol1 = [1 nan 2 nan]
pol2 = [nan 3 4 nan nan 5]
what result would you expect ?
Sayantan Sahu
Sayantan Sahu 2018년 1월 16일
yes use shorter vectors. In the example you provide, it should plot pol1(3) and pol2(3) and so on. To summarize wherever its numeric values not NaN.

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

채택된 답변

Guillaume
Guillaume 2018년 1월 16일
"yes use shorter vectors"
So in effect, you're telling us to truncate the longer one so that it is the same length as the other? If you do that then your initial expression will work.
%truncate longer vector to the size of the shorter vector:
veclength = min(numel(po1), numel(pol2));
pol1 = pol1(1:veclength);
pol2 = pol2(1:veclength);
%your original search, find not needed
good_use = ~isnan(pol1) & ~isnan(pol2)
%plot
plot(pol1(good_use), pol2(good_use))

추가 답변 (1개)

Greg Heath
Greg Heath 2018년 1월 15일
Separate the 2 searches.
Hope this helps
Thank you for formally accepting my answer
Greg

카테고리

Help CenterFile Exchange에서 Graphics Object Programming에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by