How to change the imagesc axis?

219 views (last 30 days)
I have he following code which displays imagesc axis with the length of the samples. But I want the x axis to be dispyed w.r.t time t. Can some one help me regarding this?
clear all; close all;
t= 0:0.1:1;
N = length(t);
M = randn(N,N);
figure()
imagesc(M);

Accepted Answer

Dyuman Joshi
Dyuman Joshi on 10 Mar 2023
You can specify the x and y ranges and then add ticks for all values of t
t= 0:0.1:1;
N = length(t);
M = randn(N,N);
figure()
imagesc([t(1) t(end)], [1 N], M)
xticks(t)

More Answers (1)

Simon Chan
Simon Chan on 10 Mar 2023
Use function xticklabels
clear all; close all;
t= 0:0.1:1;
N = length(t);
M = randn(N,N);
figure()
imagesc(M);
ax=gca;
xticklabels(ax,t(ax.XTick));
  2 Comments
Kalasagarreddi Kottakota
Kalasagarreddi Kottakota on 10 Mar 2023
this works okay, but lets say t = 0:1/6:1, then axis looks this. Is there any way to set the xticks more properly instead of 0.16, 0.33. etc. I am looking more like 0.25, 0.5,0.75,1..etc
clear all; close all;
t= 0:1/6:1;
N = length(t);
M = randn(N,N);
figure()
imagesc(M);
ax=gca;
xticklabels(ax,t(ax.XTick));
Simon Chan
Simon Chan on 10 Mar 2023
Edited: Simon Chan on 10 Mar 2023
Suppose you would like to roundoff to 2 decimal places.
clear all; close all;
t= 0:1/6:1;
N = length(t);
M = randn(N,N);
figure()
imagesc(M);
ax=gca;
xticklabels(ax,round(100*t(ax.XTick))/100);
Or if you want to show all TickLabels to have 2 decimal places.
figure()
imagesc(M);
ax=gca;
xticklabels(ax,compose('%.2f',round(100*t(ax.XTick))/100));

Sign in to comment.

Categories

Find more on MATLAB in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!