MATLAB: How to link a word or group of words to a ” *.jpg” picture.

.jpglink picturespictureswords link to pictureswords to pictures

folder = 'F:\school\matlab\project\pictures\pictures alone'; files = {'apple.jpg','condor.jpg','elephant.jpg',… 'Koala.jpg','orange.jpg','whale.jpg','Penguins.jpg'};
i'm quiet new to this programming thing.. so i'm trying to learn more about programming and matlab…
is there a way to link different words to each ".jpg' picture in that array…? i have a feeling that it might be possible but i just don't know how…
here is my array of pictures… but i dont know how to link the words that i like to each picture…
like say, i would like the word apple to be linked with 'apple.jpg' so that when i see the apple picture and i type apple it will give me a positive response… i have been searching the web about this.. and i cant find a way to do it… well i might had already found the answer but i probably didn't understand it… i'm sorry if i'm being too demanding.. just wanted to explore this matlab programming.. coz it's my first time to do programming…. and i'm very excited to try lots of things with this….

Best Answer

This is a copy of the answer I wrote in the comment to my answer of your other question:
It sounds like you're after a method of tagging pictures and retrieving / searching these tags.
This is normally done with a database or some data structures that are not available in matlab (e.g. multi-index container). In matlab, what I would do is use a map.
If you wanted to make it easy to find images associated with a certain tag, the tags would be the keys, the images associated with the tag, the values, would be a cell array:
keys = {'fruits', 'animals', 'apples', 'birds'};
values = {{'apple.jpg', 'orange.jpg'}, {'condor.jpg', 'elephant.jpg', 'koala.jpg', 'whale.jpg', 'penguins.jpg'}, {'apple.jpg'}, {'condor.jpg', 'penguins.jpg}};
tagimages = containers.Map(keys, values);
%find images of birds:
birdimages = tagimages('birds')
%add a tag:
tagimages('Four legged') = {'elephant.jpg', 'koala.jpg'}
The issue with the above is that you duplicate the image strings a lot in the map (that can be worked around by storing indices to the cell array of filenames instead) and finding the tags associated with one image is not easy. Matlab unfortunately does not have a great deal of containers. To get something better, you'd have to use the database toolbox.
If what you want to do predominantly is find tags associated with an image, then you make the images the keys, and the tags the values:
keys = {'apple.jpg', 'orange.jpg', 'condor.jpg', 'elephant.jpg', 'koala.jpg', 'whale.jpg', 'penguins.jpg'};
values = {'fruit', 'apple'}, {'fruit'}, {'animal', 'bird'}, {'animal'}, {'animal'}, {'animal'}, {'animal', 'bird'}};
imagetags = containers.Map(keys, values);
appletags = imagetags('apple.jpg')
Related Question