필터 지우기
필터 지우기

help with concatenation to open file

조회 수: 1 (최근 30일)
lucas
lucas 2013년 10월 23일
댓글: Vivek Selvam 2013년 11월 5일
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
dpb
dpb 2013년 10월 23일
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)

댓글을 달려면 로그인하십시오.

채택된 답변

Vivek Selvam
Vivek Selvam 2013년 10월 23일
편집: Vivek Selvam 2013년 10월 23일
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);

추가 답변 (1개)

lucas
lucas 2013년 10월 25일
ty vivek!:)

카테고리

Help CenterFile Exchange에서 Programming에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by