[新手]一个GUI读MAT的问题
我想在gui上用一个butto读一个MAT的(一个矩阵)进入工作区间,程序如下:% --- Executes on button press in open_data.
function open_data_Callback(hObject, eventdata, handles)
% hObject handle to open_data (see GCBO)
% eventdatareserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
= uigetfile(('*.mat'),'请选择原始数据文件');
data = load('PathName')
不成功,请指教~
回复 楼主 huangyaowen 的帖子
data = load('PathName')改成
data=load()
PathName仅是文件路径,不包括文件名 解决了,谢谢
回复 沙发 friendchj 的帖子
data =GGG:
>> GGG
??? Undefined function or variable 'GGG'.
请问我通过GUI导入 和在工作区通过load GGG,MAT 效果不一样的吗 我导入以后试这个在工作区查看这个矩阵,但是没有成功。
能够解决吗?:@)
查看了一下,
function open_data_Callback(hObject, eventdata, handles)
% hObject handle to open_data (see GCBO)
% eventdatareserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
= uigetfile(('*.mat'),'请选择原始数据文件');
%data = load(PathName)
data=load()
size(data)
变成了 一个1*2矩阵,具体结果
data =
GGG:
ans =
1 1
我的想法是,把mat里面的矩阵弄进来。:@( 怎么办呢? GGG这个文档还没进入workspace
[ 本帖最后由 ChaChing 于 2009-5-8 23:57 编辑 ] help load
data=load(), data已经是struct array
使用load()试试
回复 5楼 ChaChing 的帖子
恩 行了 谢谢原来一直都是成功的,只是在WORKSPACE那里不显示而已,我矩阵的名字和文件名不一样,比如我的文件名称是matlab.m 里面是一个名称为qqqq的矩阵,我用
= uigetfile(('*.mat'),'请选择原始数据文件');
data=load()
size(???)
如何查看这个矩阵的大小呢?这里的“???”如何确定,即导入mat后,可以识别里面的矩阵名,谢谢指教~
回复 6楼 huangyaowen 的帖子
文件名称是matlab.m? 为何不是matlab.mat? 格式是否为mat格式?若是的话, load进来後, 原先的变数名称不变! LZ的例子, 就是size(qqqq)
若一定要使用data=load(...), 则使用size(data.qqqq)
回复 7楼 ChaChing 的帖子
不好意思,我打错了 文件名称是matlab.mat。我需要的是,load进一个含有矩阵的mat,然后size它,以便取出它的行列数。
我刚才试了一下,没什么问题,就是不知道怎么确定size里面的名称,不知道怎么load进mat的时候自动识别里面的矩阵名,
还有个问题,我用
= size(qqqq);
set(handles.text3,'string',row);
set(handles.text4,'string',col);
成功显示出来行列,但是我想做一个“转换”按钮,实现矩阵行列兑换(a=a')的形式然后再次现实。不知道在“转换”回调函数里怎么写,还有全局变量怎么设置好呢?请指教~
我的方法,在“转换”回调函数下
= size(qqqq')
set(handles.text3,'string',row);
set(handles.text4,'string',col);
提示是
??? Undefined function or variable 'qqqq'.
Error in ==> bysj03>transform_Callback at 160
= size(qqqq')
Error in ==> gui_mainfcn at 96
feval(varargin{:});
Error in ==> bysj03 at 42
gui_mainfcn(gui_State, varargin{:});
Error in ==> guidemfile>@(hObject,eventdata)bysj03('transform_Callback',hObject,eventdata,guidata(hObject))
??? Error while evaluating uicontrol Callback 现在尝试的方法
我的初始化:
function bysj03_OpeningFcn(hObject, eventdata, handles, varargin)
global row
global col
%global qqqq
global data
打开数据回调函数:
function open_data_Callback(hObject, eventdata, handles)
= uigetfile(('*.mat'),'请选择原始数据文件');
%data = load(PathName)
load();
data = qqqq;
= size(data);
set(handles.text3,'string',row);
set(handles.text4,'string',col);
“转换”回调函数:
function transform_Callback(hObject, eventdata, handles)
data = data'
= size(data)
set(handles.text3,'string',row);
set(handles.text4,'string',col);
按了“转换”后错误的提示是:
??? At compilation, "data" was determined to be a variable and this
variable is uninitialized."data" is also a function name and previous versions of MATLAB would have called the function.
However, MATLAB 7 forbids the use of the same name in the same
context as both a function and a variable.
Error in ==> bysj03>transform_Callback at 162
data = data'
Error in ==> gui_mainfcn at 96
feval(varargin{:});
Error in ==> bysj03 at 42
gui_mainfcn(gui_State, varargin{:});
Error in ==> guidemfile>@(hObject,eventdata)bysj03('transform_Callback',hObject,eventdata,guidata(hObject))
??? Error while evaluating uicontrol Callback
页:
[1]