声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2002|回复: 10

[GUI界面] 如何在GUI界面下保存函数输出的结果(求教了)

[复制链接]
发表于 2006-9-18 19:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我用GUI界面设计了一个函数调用,但不知道如何在GUI界面下保存函数输出的结果,要设计一个弹出窗口可以选择保存路径:victory::handshake

[ 本帖最后由 kxin 于 2006-9-18 19:42 编辑 ]
回复
分享到:

使用道具 举报

 楼主| 发表于 2006-9-18 19:27 | 显示全部楼层

我顶

我顶
发表于 2006-9-18 20:22 | 显示全部楼层
原帖由 kxin 于 2006-9-18 19:27 发表
我顶


用uiputfile函数试试是否你要的效果

评分

1

查看全部评分

 楼主| 发表于 2006-9-18 20:41 | 显示全部楼层
这个函数是保存界面还是保存结果呢?谢谢了
发表于 2006-9-18 20:41 | 显示全部楼层
原帖由 kxin 于 2006-9-18 20:41 发表
这个函数是保存界面还是保存结果呢?谢谢了


保存结果
 楼主| 发表于 2006-9-18 22:25 | 显示全部楼层
在普通的matlab函数中,我是用 fid = fopen('e:data/trace2.bin','wb'); 语句来给定函数运行结果的位置的,现在假设在GUI中只用一个简单的callback来调用这个函数,同时弹出保存对话框,如何将我所选择的保存路径返回到原函数程序中呢,完成 fid = fopen('e:data/trace2.bin','wb'); 所做的功能呢?谢谢

[ 本帖最后由 kxin 于 2006-9-18 22:29 编辑 ]
发表于 2006-9-19 02:43 | 显示全部楼层
用uiputfile返回你要保存的文件名和路径

然后用fopen来实现文件的存储
发表于 2006-9-19 02:51 | 显示全部楼层
一个简单的例子

  1. [file,path] = uiputfile('*.txt','Save Workspace As');
  2. x = 0:.1:1;
  3. y = [x; exp(x)];
  4. fid = fopen([path,file,'.txt'],'w');
  5. fprintf(fid,'%6.2f %12.8f\n',y);
  6. fclose(fid)
复制代码

评分

1

查看全部评分

 楼主| 发表于 2006-9-19 10:33 | 显示全部楼层
还是不行,在同一个程序中是可以实现存储和保存路径,但我要在GUI中去调用,我把程序分开分别做在GUI和shili.m里,就实现不了了

function pushbutton1_Callback(hObject, eventdata, handles)
[file,path] = uiputfile('*.txt','Save Workspace As');
shili
这个在GUI中作为调用,并新建m文件

function shili
x = 0:.1:1;
y = [x; exp(x)];
fid = fopen([path,file,'.txt'],'w');
fprintf(fid,'%6.2f %12.8f\n',y);
fclose(fid)
这时fopen无法找到应该保存的路径呀

[ 本帖最后由 kxin 于 2006-9-19 10:34 编辑 ]
发表于 2006-9-19 10:36 | 显示全部楼层
原帖由 kxin 于 2006-9-19 10:33 发表
还是不行,在同一个程序中是可以实现存储和保存路径,但我要在GUI中去调用,我把程序分开分别做在GUI和shili.m里,就实现不了了

function pushbutton1_Callback(hObject, eventdata, handles)
= uiputfile(' ...


加上参数传递就可以拉

function pushbutton1_Callback(hObject, eventdata, handles)
[file,path] = uiputfile('*.txt','Save Workspace As');
shili(path, file);

function shili(path, file)
x = 0:.1:1;
y = [x; exp(x)];
fid = fopen([path,file,'.txt'],'w');
fprintf(fid,'%6.2f %12.8f\n',y);
fclose(fid)
 楼主| 发表于 2006-9-19 15:18 | 显示全部楼层
谢谢大家了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-12 17:58 , Processed in 0.065529 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表