Using 'OR' or 'ELSEIF' with a string
显示 更早的评论
Hi, I have a basic question. I am reading a file named as Basefilename="Filenameversion1.production_time.improvement_date.time_frame.hdf".
The code is not reading files from a folder containing different versions i.e "Filenameversion2......hdf", "Filenameversion3......hdf".
Code only reads filename mentioned in Basefilename.The remaining filename is same only version name is changed.
How can i do modification so that matlab reads file even if 'version' is changed.
Thanks alot
回答(2 个)
Image Analyst
2016-1-3
0 个投票
The answer for this, along with lots of other good stuff, is in the FAQ: http://matlab.wikia.com/wiki/FAQ#How_can_I_process_a_sequence_of_files.3F
Star Strider
2016-1-3
I am not certain that I understand what you want to do, but this may be one approach:
ver_nr = 2;
Basefilename=sprintf('Filenameversion%d.production_time.improvement_date.time_frame.hdf', ver_nr)
produces:
Basefilename = Filenameversion2.production_time.improvement_date.time_frame.hdf
Is that what you want to do?
10 个评论
JB
2016-1-3
JB
2016-1-3
Star Strider
2016-1-3
First, you can define ‘ver_nr’ as a loop index variable. If the numbers are discontinuous, you can define them as a specific vector, for example: for ver_nr = [1 2 5 8 10] as the start of the loop.
Second I do not understand what the ‘%s’ refers to or what you want to do with it. That was not part of your original post.
Star Strider
2016-1-3
How do the scanning time_frame and version number relate?
I am now lost. I have no idea what you are doing or what you want to do.
Image Analyst
2016-1-3
No, you can either use numbers in the "if" test (like if num1==num2), or you can compare two strings with string functions like strcmp(str1, str2), strcmpi(), or strfind().
JB
2016-1-3
Star Strider
2016-1-3
I still don’t understand, but if you want to do comparisons with string variables, use strcmpi, strncmpi, or related functions (links to those in and at the end of those pages).
Image Analyst
2016-1-3
编辑:Image Analyst
2016-1-3
A comparison would have == not =. So I don't know if you're wanting to do
if Basefilename == "Filenameversion1.production_time.improvement_date.time_frame.hdf"
% Some code to do if this is true.
elseif Basefilename == "Filenameversion2.production_time.improvement_date.time_frame.hdf"
% Some code to do if this is true.
end
Or if you're trying to do
if num1 == num2
% Assign Basefilename
Basefilename = "Filenameversion1.production_time.improvement_date.time_frame.hdf"
else
% Assign Basefilename
Basefilename = "Filenameversion2.production_time.improvement_date.time_frame.hdf"
end
Which is it? Or is it neither?
类别
在 帮助中心 和 File Exchange 中查找有关 File Operations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!