Problem with non-Zero Matrix Appearing Zero in Command Window and in Imagesc
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Rose
am 29 Feb. 2024
Kommentiert: Steven Lord
am 29 Feb. 2024
I am generating a matrix "allpowpf" which shows the power generated as a function of wave slowness and frequency. When I double click on the matrix under the variable listing, it shows a matrix filled with numbers on the magnitude of e10 (screenshot attached). However, when I type "powpf" into the command window, it shows a matrix filled with zeros (screenshot attached). Most importantly, when I plot allpowpf using imagesc, I get an image of an array of zeros instead of the proper numbers.
I generate the zero matrix allpowpf using:
allpowpf = zeros(np,nf/2);
Then, I fill allpowpf using the following:
Y = fft(taup(k,:));
for j = 1:nf/2 % samples in frequency domain, stop at Nyquist
allpowpf(k,j) = allpowpf(k,j) + real(Y(j)^2);
end
And finally, I plot allpowpf using:
imagesc(allpowpf) % plot of energy slowness and frequency
xlabel('frequency (Hz)')
ylabel('slowness (ms/m)')
I believe that my loops are working correctly because the variable allpowpf is correct, but I do not understand why it plots as a zero matrix or why it appears in the command window as a zero matrix when it is not a zero matrix as a stored variable.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1631896/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1631901/image.png)
0 Kommentare
Akzeptierte Antwort
John D'Errico
am 29 Feb. 2024
They are still (non-zero) numbers. Just too small to display in the chosen format. If you close your eyes, the world does not disappear. ;-)
X = [123456789012345 0.00000123456789]
But that second element is still there. Not zero.
X(2)
You can generally force MATLAB to show the true values using a scientific display format.
format short g
X
2 Kommentare
Steven Lord
am 29 Feb. 2024
What's the range of data stored in your matrix? What do you see when you run these commands?
format longg
[minvalue, maxvalue] = bounds(allpowpf, "all")
therange = maxvalue - minvalue
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu 2-D and 3-D Plots 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!