MATLAB Answers

hp
0

how to remove image extension so that only numbered name can be stored in a database

Asked by hp
on 9 Sep 2018
Latest activity Commented on by hp
on 28 Sep 2018
Accepted Answer by dpb
hi .. i have some features stored in a .mat file, and i want to concatenate numbered image names( without their extension) to the same .mat file. so that i can sort image names along with sorting its numerical features.. how to do plz help? say eg: if a.mat contains features as follows
12 2.3344 3.22 4.22 123.jpg
as i have written this example the mat file contains 5 columns but in fifth column, we have numbered name of an image including its extension i.e. .jpg. how to remove that extension & store only 123 as its name.

  0 Comments

Sign in to comment.

3 Answers

Answer by dpb
on 9 Sep 2018
 Accepted Answer

n=sscanf(fname,'%d.jpg')
or
[~,name]=fileparts(fname);
n=str2num(n);

  0 Comments

Sign in to comment.


Answer by Image Analyst
on 9 Sep 2018

So after you extract the variables from your .mat file, do you have a string '12 2.3344 3.22 4.22 123.jpg'? If so, then do you want to take each number in the string and create a filename from it? Try
% Create sample string.
str = '12 2.3344 3.22 4.22 123.jpg'
% Convert to numbers
numbers = str2num(str(1:end-4))
% Now sort the numbers
sortedNumbers = sort(numbers, 'ascend')
% Now go through, saving files with each number but no extension (which is probably not a wise idea).
folder = pwd; % Wherever you want...
for k = 1 : length(numbers)
fullFileName = fullfile(folder, num2str(numbers(k)))
% Now do whatever you want with that filename
end
However, I don't see what sorting gets you - not sure why you wanted that. Plus you can use strsplit() and not bother about converting them to numbers. Why do you want them as numbers instead of keeping them as substrings?
Unfortunately you have not read this link and forgot to attach your .mat file. Attach it if you want more help.

  7 Comments

BTW, I sent a documentation/error message enhancement request to TMW about improving the root-cause error message for the use case.
I've no idea whether it is feasible without incurring excessive additional overhead in the input parser or not, but figured it worth pointing out the confusion the existing error message causes in interpreting root cause.
Thank you so much this clarification i wanted.. as you have mentioned its a better idea to consider image names as rownames... it may help me i will try this. thank you for the Answer.
NB: The usage as a Row Name will require limiting the string to one that is a valid ML variable name.

Sign in to comment.


Answer by hp
on 11 Sep 2018

all Image names which are in Images_names.mat file have to copied to the last column of the FEATUREdb.mat and if i apply sortrows ....all columns has to be sorted... plz help...

  1 Comment

I got answer from Image analyst... using fileparts to extract the filenames -works... thank you...

Sign in to comment.