zoukankan      html  css  js  c++  java
  • matlab中uigetfile命令的应用

    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:Workmyfile.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:Applicationsmatlabmyfun.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函数也可以实现用户信息输入,不过是在命令行中输入,也很简单、常用。

  • 相关阅读:
    JavaScript深入解读
    CentOS7上安装与配置Tomcat8与MySQL5.7
    码云的初步使用
    MySQL安装与初步操作
    自定义消息队列
    用Executors工具类创建线程池
    Java中的BlockingQueue队列
    Restful对于URL的简化
    docker push 实现过程
    通过docker-machine和etcd部署docker swarm集群
  • 原文地址:https://www.cnblogs.com/yymn/p/4503764.html
Copyright © 2011-2022 走看看