Azzera filtri
Azzera filtri

help with concatenation to open file

2 visualizzazioni (ultimi 30 giorni)
lucas
lucas il 23 Ott 2013
Commentato: Vivek Selvam il 5 Nov 2013
hello, can anyone help me to make this concatenation work?
I need a routine that ask the user to type the word 'work' and number '2' and also, only permits receive the answer 'work' and '2'
i tought something like this  
% enter the right name of the file
a = {'Type the name of the file:'}; % u need to type work
work = inputdlg (a);
t=str2num(char(work));
_if t =~ work
..._
% enter the right number of the file
b = {'Type the number of the file:'}; % you need to type 2
number = inputdlg (b);
n=str2num(char(number(1)));
if n~=2
disp('ERROR: Please type 2');
else
% concatenate
name = [ t, '_' , n ];
name_file = [ name, '.txt' ];
load (name_file);
thx :)
  1 Commento
dpb
dpb il 23 Ott 2013
Well, if you're only going to allow one answer, why make the user work (so to speak)? Just define it.
But, the general question -- to compare a string
doc strncmp % and friends
To compare numeric, just use '==' or for arrays see
doc isequal
As a stylistic note, dereference the cell array contents with the curly braces "{}" instead of using char()
n=str2num(num{1});
This kind of logic is also a good location for a while...end loop enclosing a try...catch block to handle error and repeat the question until proper answer is obtained (or user gives up in frustration--don't forget to have a way to exit)

Accedi per commentare.

Risposta accettata

Vivek Selvam
Vivek Selvam il 23 Ott 2013
Modificato: Vivek Selvam il 23 Ott 2013
Try doc function for the new functions you find in the following code.
This is one way to do what you want:
a = 'Type the name of the file:'; % u need to type work
b = 'Type the number of the file:'; % you need to type 2
t = ''; % initialize file name
n = NaN; % initialize file number
tRequired = 'work';
nRequired = 2;
% enter the right name of the file
while strcmp (t,tRequired) == 0 % loop till the file name is not same
t = input (a,'s'); % get input as string
end
% enter the right number of the file
while n ~= nRequired % loop till the number of file is not same
n = input (b,'s'); % get input as string
n = str2double(n);
end
name = [ t, '_' , num2str(n) ];
name_file = [ name, '.txt' ];
disp(name_file);
load (name_file);

Più risposte (1)

lucas
lucas il 25 Ott 2013
ty vivek!:)

Categorie

Scopri di più su Programming in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by