matlab中uigetfile命令的应用

uigetfile命令的应用

此函数的用法为

[FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle,DefaultName)

FileName:返回的文件名

PathName:返回的文件的路径名

FilterIndex:选择的文件类型

FilterSpec:文件类型设置

DialogTitle:打开对话框的标题

DefaultName:默认指向的文件名

例子:(接来自matlab的帮助)

1.最简单的形式,只设置了一种可选择的文件类型

[FileName,PathName] = uigetfile('*.m','Select the M-file');

2.设置多种文件类型

[filename, pathname] = ...
     uigetfile({'*.m';'*.mdl';'*.mat';'*.*'},'File Selector');

3.可以为文件类型设置说明,注意书写格式

[filename, pathname] = uigetfile( ...
{'*.m;*.fig;*.mat;*.mdl','MATLAB Files (*.m,*.fig,*.mat,*.mdl)';
   '*.m',  'M-files (*.m)'; ...
   '*.fig','Figures (*.fig)'; ...
   '*.mat','MAT-files (*.mat)'; ...
   '*.mdl','Models (*.mdl)'; ...
   '*.*',  'All Files (*.*)'}, ...
   'Pick a file');

4.可返回选择的文件类型序号,并且可以设置文件多选,设置文件多选时注意,当只选了一个文件时,返回的filename为字符串,选择多个文件时,返回的元胞类型。

[filename, pathname, filterindex] = uigetfile( ...
{  '*.mat','MAT-files (*.mat)'; ...
   '*.mdl','Models (*.mdl)'; ...
   '*.*',  'All Files (*.*)'}, ...
   'Pick a file', ...
   'MultiSelect', 'on');

5.可以设置默认文件名

uigetfile({'*.jpg;*.tif;*.png;*.gif','All Image Files';...
          '*.*','All Files' },'mytitle',...
          'C:\Work\myfile.jpg')

更多文件对话框,可参考matlab帮助。

一点小技巧:当返回了一个文件的时候,可以用fullfile将路径和文件名组合起来,如

[filename, pathname] = uigetfile('*.m', 'Pick an M-file');
if isequal(filename,0)
   disp('User selected Cancel')
else
   disp(['User selected', fullfile(pathname, filename)])
end

fullfile的用法如下

f = fullfile('C:', 'Applications', 'matlab', 'myfun.m')
f = C:\Applications\matlab\myfun.m

上传一个自己编的小程序,用来实现图片文件的批量缩放(帮班级上传图片,但是图片太大了,太占空间,若一个一个缩小有太费事,于是就有了这个小程序,呵呵,仅为应用,未考虑异常处理)

%修改图片的大小
%%
clc
clear all
close all
%%
scale=inputdlg('缩放比(大于1为放大,小于1为缩小)','请输入缩放比',1,{'0.5'});
%%
[filename, pathname] = uigetfile( ...
    {'*.jpg;*.tif;*.png;*.gif','All Image Files';...
    '*.*','All Files' },...
    '请选择要修改的图片(可多选)', ...
    'MultiSelect', 'on');
%%
if ~iscell(filename)
    filename1{1}=filename;
else
    filename1=filename;
end
%%
for i=1:length(filename1)
    image=imread(strcat(pathname,filename1{i}));
    image_resize=imresize(image,eval_r(scale{1}));
    imwrite(image_resize,strcat(pathname,datestr(now, 'mmddHH'),filename1{i}));
end

其中的inputdlg函数实现一个要求用户输入信息的对话框,用法如下

answer = inputdlg(prompt,dlg_title,num_lines,defAns,options)

prompt:输入文本框的标签

dlg_title:对话框的标题

num_lines:输入文本框的行数

defAns:默认的文本框内容

options:一些可选的对话框选项

prompt={'Enter the matrix size for x^2:',...
        'Enter the colormap name:'};
name='Input for Peaks function';
numlines=1;
defaultanswer={'20','hsv'};

options.Resize='on';
options.WindowStyle='normal';
options.Interpreter='tex';

answer=inputdlg(prompt,name,numlines,defaultanswer,options);

返回为字符串,如果想转化为数字,可以是使用函数eval。

另外input函数也可以实现用户信息输入,不过是在命令行中输入,也很简单、常用。

matlab中uigetfile命令的应用的更多相关文章

  1. Matlab中利用null函数解齐次线性方程组

    摘自:http://blog.csdn.net/masibuaa/article/details/8119032 有齐次线性方程AX=0,且rank(A)=r<n时,该方程有无穷多个解, 可以用 ...

  2. Matlab中的uigetfile用法

    参考:https://ww2.mathworks.cn/help/matlab/ref/uigetfile.html?searchHighlight=uigetfile&s_tid=doc_s ...

  3. [转载]Matlab中fft与fftshift命令的小结与分析

    http://blog.sina.com.cn/s/blog_68f3a4510100qvp1.html 注:转载请注明出处——by author. 我们知道Fourier分析是信号处理里很重要的技术 ...

  4. matlab中 mcc、mbuild和mex命令详解

    先简单的说说mcc.mbuild和mex到底怎么回事: mcc将M文件转换成C/C++文件和相应的MEX包裹文件(需要Matlab编辑器),但在特定条件下可以自动调用mbuild或者mex mex将C ...

  5. MATLAB基础函数命令

    1. 常用命令 dir:列出当前目录下的所有文件 clc:清除命令窗 clear all:清除环境(从内存中清除所有变量) who:将内存中的当前变量以简单形式列出 close all: 关闭所有的 ...

  6. MATLAB中绘制质点轨迹动图并保存成GIF

    工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t) ...

  7. paper 121 :matlab中imresize函数

    转自:http://www.cnblogs.com/rong86/p/3558344.html matlab中函数imresize简介: 函数功能:该函数用于对图像做缩放处理. 调用格式: B = i ...

  8. Matlab中的一些小技巧

    (转于它处,仅供参考) 1.. Ctrl+C 中断正在执行的操作 如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来中断.MATLAB这时可能正疲于应付,响应会有些滞后. ...

  9. Matlab(1) -- Matlab清屏命令

    这里介绍 matlab 中三种不同的清理变量.显示窗口或图形的命令. 一.比较重要的清理:清除变量命令:clear 说明:运行m文件之前一般都需要该命令,否则可能出错. 二.比较常用的清理:清理当前命 ...

随机推荐

  1. c++中的函数重载

    函数多态也称为函数重载. (1)函数重载指的是可以有多个同名的函数,因此对名称进行了重载. (2)函数重载的关键在于函数的参数列表,也称为函数特征标.如果两个函数的参数数目和参数类型相同,同时参数的排 ...

  2. yum与rmp

    清理一切缓存[root@geust02 ~]# yum   clean  all  重建元数据[root@geust02 ~]# yum  makecache 查询vim相关的软件包[root@geu ...

  3. ajax 数据请求(一)同域

    参考:http://www.css88.com/jqapi-1.9/jQuery.ajax/ http://www.cnblogs.com/haitao-fan/p/3908973.html 1.常用 ...

  4. maven在eclipse上的配置

    1,安装maven,配置MAVEN_HOME 和 bin Path环境变量. 2,配置maven setting文件 <mirror>      <id>alimirrorId ...

  5. poj 3368(RMQ模板)

    题目链接:http://poj.org/problem?id=3368 题意:给出n个数和Q个询问(l,r),对于每个询问求出(l,r)之间连续出现次数最多的次数. 求解RMQ问题的算法有:搜索(比较 ...

  6. Caffe使用step by step:r-cnn目标检测代码

    深度学习算法火起来之后,基于深度学习各种模型都如雨后春笋一般在各个领域广泛应用. 由于想把深度学习算法应用在在视频目标检测方向,得到一个较好的结果.由于视频数据的复杂性,因此使用深度学习算法在视频中的 ...

  7. Java中ArrayList的fori和foreach效率比较

    1. list的元素为Integer [代码实例1] public static void main(String[] args) { List<Integer> list = new A ...

  8. bzoj1036 [ZJOI2008]树的统计Count(树链剖分)

    Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w.我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. Q ...

  9. MT【129】常数变易法

    已知数列\(\{x_n\}\)满足\[x_{n+1}=\left(\dfrac 2{n^2}+\dfrac 3n+1\right)x_n+n+1,n\in\mathbf N^*,\]且\(x_1=3\ ...

  10. Linux内核设计与实现第八周读书笔记

    第四章 进程调度 进程在操作系统看来是程序的运行态表现形式. 4.1多任务 多任务操作系统就是能同时并发地交互执行多个进程的操作系统. 多任务操作系统会使多个进程处于堵塞或者睡眠状态.这些任务尽管位于 ...