Hi there,
I'de like to create a 2D plot with a 3rd dimension in colorscale exactly like 'imagesc' does but with a controlable y scale. When using imagesc(X,Y,Z) it sets the Y scale linear between the two ends of the Y vector ignoring everything in between.
Is there a way to do so? maybe by modifying the 'imagesc' function itself or perhaps by another function?
p.s I know that function such as 'pcolor' allows such scaling but it does not plot the same output as i require (and imagesc gives).
Thanks in advance
Y

 채택된 답변

Mathieu NOE
Mathieu NOE 2020년 11월 9일

0 개 추천

hello
this is the way I control the Z scale rendering of imagesc :
A = rand(100,100);
figure(1);imagesc(A);colorbar('vert');
% let's say we don't want to display values below "lower_limit" and above "upper_limit"
lower_limit = 0.75;
upper_limit = 0.9;
A(A<lower_limit) = lower_limit; % or NaN
A(A>upper_limit) = upper_limit; % or NaN
figure(2);imagesc(A);colorbar('vert');

댓글 수: 5

Yonatan Gershuni
Yonatan Gershuni 2020년 11월 9일
Thank you for your answer. However my problem is not setting upper or lower limits on an axis but rather setting a costume bar. I.e say you have a y vector with values y=[1, 1.1, 1.2, 1.3, 5] (with matching x vector and z matrix). If you use imagesc(x,y,z) you will see the y axis on your image will be from 1 to 5 but in even increments.
Mathieu NOE
Mathieu NOE 2020년 11월 9일
ok , so you would like imagesc to be displayed with uneven "pixels" to match the uneven spacing of x and y ?
Yonatan Gershuni
Yonatan Gershuni 2020년 11월 10일
Exactly, only im not sold on imagesc so any function would do just fine if it could do it
Yonatan Gershuni
Yonatan Gershuni 2020년 11월 10일
It works! Thank you very much!

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

추가 답변 (0개)

카테고리

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

제품

릴리스

R2020a

질문:

2020년 11월 9일

댓글:

2020년 11월 10일

Community Treasure Hunt

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

Start Hunting!

Translated by