How to change the imagesc axis?

219 Ansichten (letzte 30 Tage)
Kalasagarreddi Kottakota
Kalasagarreddi Kottakota am 10 Mär. 2023
Bearbeitet: Simon Chan am 10 Mär. 2023
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);

Akzeptierte Antwort

Dyuman Joshi
Dyuman Joshi am 10 Mär. 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)

Weitere Antworten (1)

Simon Chan
Simon Chan am 10 Mär. 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 Kommentare
Kalasagarreddi Kottakota
Kalasagarreddi Kottakota am 10 Mär. 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 am 10 Mär. 2023
Bearbeitet: Simon Chan am 10 Mär. 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));

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by