声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4760|回复: 5

[综合讨论] [求助]请教:用matlab如何实现“文件打开对话框”?

[复制链接]
发表于 2006-6-5 12:00 | 显示全部楼层 |阅读模式

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

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

x
请教大家:如何用MATLAB实现文件打开和存储呢?
具体问题:我想打开一个记事本,把里面的数据付值给一个矩阵,如何用打开文件的形式实现,谢谢赐教,诚谢!!!
MATLAB可以实现指定文本文件中指定行间的数据吗?
[此贴子已经被cdwxg于2006-6-5 12:13:15编辑过]

回复
分享到:

使用道具 举报

发表于 2006-6-5 12:13 | 显示全部楼层
文件的打开fid= fopen(文件名,打开方式)
注:其中文件名用字符串形式,表示待打开的数据文件。常见的打开方式有:‘r’表示对打开的文件读数据,‘w’表示对打开的文件写数据,‘a’表示在打开的文件末尾添加数据。fid用于存储文件句柄值,句柄值用来标识该数据文件,其他函数可以利用它对该数据文件进行操作。
文件的关闭 sta=fclose(fid)
注:该函数关闭fid所表示的文件。sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回–1。
二进制文件的读[A,COUNT]=fread(fid,size, precision)
注:其中A用于存放读取的数据,COUNT返回所读取的数据元素个数,fid为文件句柄,size为可选项,若不选用则读取整个文件内容,若选用则它的值可以是下列值:
(1) N表示读取 N个元素到一个列向量。(2) Inf表示读取整个文件。(3) [M,N]表示读数据到M×N的矩阵中,数据按列存放。precision代表读写数据的类型
二进制文件的写COUNT=fwrite (fid, A, precision)
注:其中COUNT返回所写的数据元素个数,fid为文件句柄,A用来存放写入文件的数据,precision用于控制所写数据的类型,其形式与fread函数相同。
文本文件的读fscanf 函数的调用格式为:[A,COUNT]= fscanf (fid, format, size)
注:其中A用以存放读取的数据,COUNT返回所读取的数据元素个数。fid为文件句柄。format用以控制读取的数据格式,由%加上格式符组成,常见的格式符有d,f,c,s。size为可选项,决定矩阵A中数据的排列形式。
文本文件的写fprintf 函数的调用格式为:COUNT= fprintf(fid, format, A)
注:其中A存放要写入文件的数据。先按format指定的格式将数据矩阵A格式化,然后写入到fid所指定的文件。格式符与fscanf函数相同
 楼主| 发表于 2006-6-5 12:26 | 显示全部楼层
谢谢楼上的赐教,非常感谢!
 楼主| 发表于 2006-6-6 07:49 | 显示全部楼层
希望大家结合
http://forum.vibunion.com/thread-15987-1-1.html
这个问题看看,请大家指正如何改进程序,才能“利用打开对话框来实现数据的导入”。谢谢大家赐教!
 楼主| 发表于 2006-6-6 07:52 | 显示全部楼层
http://forum.vibunion.com/thread-15987-1-1.html
“请看下面程序,如何实现x的值?请大虾改正“问题如下

clear;
clc

FigWin=figure('Position',[150,300,650,350],...
'Name','基于多变量统计连铸结晶器过程监测',...
'NumberTitle','off',...% 书写图形窗名
'menubar', 'none'); % 删除图形窗工具条
% set(FigWin, 'menubar' , 'none');

h_menu=uimenu(gcf,'Label','&Open File');
% cd C:\MATLAB6p1\toolbox\matlab\uitools;
global fname fpath
FileType='*.txt';
DlgTile='Open a File';
set(h_menu,'Callback',...
['[fname,fpath]='...
'uigetfile(FileType,DlgTile,100,200);'...
]);

x=fopen('fname')


push=uicontrol(FigWin,...
'Style','pushbutton',...
'Position',[50 100 100 30],...
'String','Exit',...
'CallBack','close(FigWin)');
我的目的为了把指定路径下记事本中的数据读到x中,但结果不是这样,请大虾赐教
发表于 2007-12-20 01:18 | 显示全部楼层
我的想法是
[FileName,PathName] = uigetfile('*.txt');
data=xlsread(strcat(PathName,FileName));   %%%弹出对话框%%%
a=data(x,y);  %%%引用下标读入数据%%%
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-12 07:53 , Processed in 0.067399 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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