【问题标题】:how to get path of folder and give that path to a seperate function in matlab如何获取文件夹的路径并将该路径提供给matlab中的单独函数
【发布时间】:2016-07-13 08:46:44
【问题描述】:

我想制作一个 gui,其中按下按钮时将搜索文件/文件夹,当它搜索文件/文件夹时,它将将该路径提供给另一个单独的函数,该函数将在获得路径后进行一些处理。到目前为止,我这样做了

function pushbutton2_Callback(hObject, eventdata, handles)
....
....

folder_name=uigetdir('File Selector');

浏览文件夹,现在我想将该文件夹的路径提供给该函数

source_dir = 'here the path of that folder comes';  
source_files = dir(fullfile(source_dir, '*.txt/etc'));

换句话说,如果我解释一下,我使用的那个按钮开始执行这个函数,但首先它选择一个文件/目录来输入那个函数。我尝试使用一些示例,但我是制作 gui 的新手,所以我还没有成功。任何帮助将不胜感激。谢谢。

编辑..

这就是我想要做的。

function pushbutton2_Callback(hObject, eventdata, handles)
...
folder_name=uigetdir('File Selector');
global folder_path
folder_path=genpath(folder_name);

%% ftn 将在哪里使用

function abc  %% this function is also called in another function. 

global folder_path

source_dir = folder_path;  %%% where all the files are placed
src_files = dir(fullfile(source_dir, '*.txt'));

然后循环加载所有文件

【问题讨论】:

  • 不太清楚,你的问题到底是什么。是否将folder_name 中的路径作为参数传递给函数?这个功能是什么样的?你在哪里定义的?更多代码会有所帮助...
  • @bushmills 我的意图是在 folder_name 中获取一个文件夹路径并将该路径提供给 source_dir。我尝试将该文件夹的路径作为全局变量并将该全局变量传递到 source_dir 但它不起作用。首先,我曾经像“c:\blah\blah”一样手动提供 source_dir 中的路径,但现在我制作了一个 gui,其中一个按钮将选择文件夹并将该文件夹的路径传递给将开始运行的函数。
  • 所以你要做到以下几点: 1. 获取一个文件夹路径并存放在folder_name; 2. 将folder_name 传递给在按钮回调函数中调用的函数? 3.将folder_name的字符串传给source_dir这样对吗?
  • @bushmills 完全正确

标签: matlab matlab-guide matlab-deployment


【解决方案1】:
function pushbutton2_Callback(hObject, eventdata, handles)

folder_name=uigetdir('File Selector');

listFiles(folder_name);

end

% put this function in the generated m-file
function listFiles(folder_name)

source_files = dir(fullfile(folder_name, '*.txt/etc'));

% do something with the files

end

【讨论】:

  • 它不工作不断收到此错误“未定义函数 'listFiles' 用于类型 'char' 的输入参数。”有什么办法可以使它全球化,我把它放在我尝试使用的之上。
  • 您必须将所有函数放在一个 m 文件中,这样您就不会收到未定义函数错误。如果不需要,不要使用全局变量。例如,对全局变量的意外更改通常是导致错误的原因,这很难找到。
  • 我再次尝试将路径名设置为全局变量并且它现在可以工作了。没错,全局变量不是一个好的选择,但在我的情况下,它们不会一次又一次地用于存储文件名并将该名称一次传递给另一个函数。
猜你喜欢
  • 2014-11-05
  • 2013-06-08
  • 1970-01-01
  • 2013-05-02
  • 2019-10-21
  • 2010-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多