The dimension of the input vector in the imagesc function
2 views (last 30 days)
Show older comments
I used the sample data in the attachment and got the result of Figure 1 when using the imagesc function, but I expected the result to be Figure 2.
(Note: XData, YData, and C in the imagesc () function correspond to the first, second, and third columns in the sample data, respectively.)
I want to ask how the dimensions of the matrix should be adjusted to be similar to the result in Figure 2. Thank you.
figure1
figure 2
4 Comments
Geoff Hayes
on 1 May 2020
So the colours we see in the second image represent the speed at that coordinate?
Accepted Answer
Bjorn Gustavsson
on 2 May 2020
For this type of scattered data you can use scatter, something like this:
scatter(data(:,1),data(:,2),23,data(:,3),'filled')
or if you want to reinterpolate to a regular grid you can use any of griddata, TriScatteredInterp, or scatteredInterpolant.
HTH
2 Comments
Bjorn Gustavsson
on 3 May 2020
You can adjust the intensity-levels for scatterplots with
caxis([min_level max_level])
where you chose your intensity-range to display.
Sometimes it is also preferable to plot the data in log-scale, you can do that with scatter too - provided your data is positive, just change
scatter(data(:,1),data(:,2),23,data(:,3),'filled')
to
scatter(data(:,1),data(:,2),23,log10(data(:,3)),'filled')
further you might want to dots with smaller (or larger) radius, just change 23 to whatever gives the best display. Sometimes it is worthwhile to sort the points in increasing order. This makes the dots with largest value of data(:,3) to be plotted last which reduces how much they are shaded by other points. To do that use the second out-argument from sort to generate index-vectors.
More Answers (0)
See Also
Categories
Find more on Logical 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!