我正在尝试在MATLAB中输出.mat文件,但出现此错误:
a = load('GT_IMG_4.mat');
imshow(a);
使用
imageDisplayValidateParams
时出错
预期输入数字1I
将是以下类型之一:
double
,single
,uint8
,uint16
,uint32
,uint64
,int8
,int16
,{{ 1}},int32
,int64
。相反,其类型为logical
。
struct
中的错误(第11行)images.internal.imageDisplayValidateParams
validateattributes(common_args.CData, {'numeric','logical'},...
中的错误(第78行)images.internal.imageDisplayParseInputs
common_args = images.internal.imageDisplayValidateParams(common_args);
中的错误(第222行)imshow
为什么会出现此错误,以及如何解决此问题? .mat文件是图像的基本信息。如何查看.mat文件?
答案 0 :(得分:3)
load()
将返回一个包含Mat文件中数据的结构。
下面的代码不正确,因为a
是一个struct
,用于保存您的数据,而不是数据本身。
a = load('GT_IMG_4.mat');
imshow(a);
我的猜测是您想做这样的事情:
h = load('GT_IMG_4.mat'); %I tend to use h to mean handles
imshow(h.a);
请注意,如果在加载后在命令窗口中键入h
,则应该看到该结构的内容。您可能需要深入研究才能找到a
,具体取决于您保存数据的方式。
从技术上讲,您也可以执行此操作(假设h.a
在上面工作):
load('GT_IMG_4.mat');
imshow(a);
这会将变量从Mat文件加载到当前工作空间中。请不要这样做。我的意思是您可以...但是它是我的宠儿之一,因为那样您就不知道a
的来源。