what is the map in this example?

2 visualizzazioni (ultimi 30 giorni)
Mingli Liang
Mingli Liang il 27 Dic 2023
Spostato: Dyuman Joshi il 29 Dic 2023
when I try to run this code in MATLB, it doesn't work in which showing cant find the variable of map for colormap(map). does anyone know what the map is here?
  1 Commento
Dyuman Joshi
Dyuman Joshi il 27 Dic 2023
Spostato: Dyuman Joshi il 29 Dic 2023
The variable map is part of the file mri.mat -
%Check the file location
which mri.mat
/MATLAB/toolbox/matlab/demos/mri.mat
load mri.mat
%check the contents loaded into the workspace (ignore cmdout)
whos
Name Size Bytes Class Attributes D 128x128x1x27 442368 uint8 cmdout 1x33 66 char map 89x3 2136 double siz 1x3 24 double
A generally preferred is to load the data into a variable -
out = load('mri.mat')
out = struct with fields:
D: [128×128×1×27 uint8] map: [89×3 double] siz: [128 128 27]

Accedi per commentare.

Risposte (2)

Chunru
Chunru il 27 Dic 2023
Modificato: Chunru il 27 Dic 2023
"map" specifies the color of the image.
load mri
Name Size Bytes Class Attributes D 128x128x1x27 442368 uint8 cmdout 1x33 66 char map 89x3 2136 double siz 1x3 24 double

DGM
DGM il 27 Dic 2023
Modificato: DGM il 27 Dic 2023
Ah. This is one of the hazards of using load() like this.
When you run the line
load mri
... you're loading the contents of mri.mat into memory. Three new variables magically appear in the workspace without ever being declared anywhere in the code.
One of the three is the variable called map. It is an 89x3 gray colormap. The map is almost perfectly linear and full-scale, so if you really wanted to, it would probably suffice to replace it with gray(89), but that shouldn't be necessary. Check to make sure you're loading mri.mat and that the contents are showing up in the workspace.

Community Treasure Hunt

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

Start Hunting!

Translated by