我试图在MATLAB中输出.mat文件,但我得到了这个错误:
a = load('GT_IMG_4.mat');
imshow(a);
使用
imageDisplayValidateParams
时出错
预期输入编号1I
为以下类型之一:double
、single
、uint8
、uint16
、uint32
、uint64
、int8
、int16
、int32
、int64
、logical
。相反,它的类型是struct
。
images.internal.imageDisplayValidateParams
(第11行(错误validateattributes(common_args.CData, {'numeric','logical'},...
images.internal.imageDisplayParseInputs
(第78行(错误common_args = images.internal.imageDisplayValidateParams(common_args);
imshow
(第222行(错误images.internal.imageDisplayParseInputs({'Parent','Border','Reduce'},preparsed_varargin{:});
为什么会出现此错误以及如何解决此问题。mat-file是图像的基本事实。如何查看.mat文件?
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
从哪里来。