Filter löschen
Filter löschen

How to change the imagesc axis?

216 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.

Community Treasure Hunt

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

Start Hunting!

Translated by