Filter löschen
Filter löschen

How can I call inside a function a file *.* ?

2 Ansichten (letzte 30 Tage)
Paschalis Garouniatis
Paschalis Garouniatis am 3 Nov. 2017
Kommentiert: Walter Roberson am 3 Nov. 2017
I have a set of files with the same name and different extensions, let them be a.env, a.shd, a.arr . I have created a script which calls those files inside a function. Is it possible to set those files as variables so that i can use them whenever it is necessary? I have already used the function genvarname but only for the 'a'. I don't know what to do with the extensions. Can anyone help? Thanks in advance.
  1 Kommentar
Paschalis Garouniatis
Paschalis Garouniatis am 3 Nov. 2017
I used the fileparts and uigetfile functions to store the filename as a variable and they worked. However when i call them inside a function i get error. For example :
%1st case
file='/home/raptor/Desktop/BELLHOP_LAB/Bellhop_results/Ray_trace/a.ray';
[filepath,name,ext]=fileparts(file);
plotray name; hold on
plotbty name; hold on
plotati name; hold off
%2nd case
shd_file=uigetfile('*.shd');
plotshd 'shd_file'; hold on
plotbty 'name'; hold on
plotati 'name'; hold off
In both cases the functions plotray, plotshd, ... do not recognize the filename stored in the variable but the variable.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 3 Nov. 2017
basename = 'a';
dinfo = dir( [basename, '.*'] );
filenames = {dinfo.name};
Now filenames is a cell array of existing file names all with the same basic name but with the different extensions.
  5 Kommentare
Paschalis Garouniatis
Paschalis Garouniatis am 3 Nov. 2017
Is it possible to convert your code for the 1st case in which i don't need the extension of the file? For the second case that i checked it worked.
Walter Roberson
Walter Roberson am 3 Nov. 2017
%1st case
file='/home/raptor/Desktop/BELLHOP_LAB/Bellhop_results/Ray_trace/a.ray';
[filepath,name,ext]=fileparts(file);
plotray(name); hold on
plotbty(name); hold on
plotati(name); hold off
%2nd case
shd_file=uigetfile('*.shd');
plotshd(shd_file); hold on
plotbty(name); hold on
plotati(name); hold off

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Environment and Settings finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by