2013-06-21 18 views
1

我要檢查,如果特定模式是在一個字符串做一些動作如何在matlab中檢查字符串中的模式?

[filename pathname]=uigetfile 
fullpath=[pathname filename] 

在我的計劃,我將只瀏覽照片,所有照片都命名爲與該模式

* _cam1.jpg * _cam1.jpg,* _cam2.jpg * _cam2.jpg,* _cam3.jpg

我想要做的檢查如果圖像與CAM1結束然後做一些邏輯

if (filename.contain(cam1) 
then imread('1.jpg') 
elseif (filename.contain(cam2) 
then imread ('2.jpg) 

我知道在MATLAB中沒有叫'包含'的方法,但這是一個示例來演示我想要的。

+0

http://www.mathworks.com/help/matlab/matlab_prog/regular-expressions.html – ClojureMostly

回答

2

對於更復雜的搜索,你可以使用正則表達式,但在這個簡單的情況下,字符串比較就足夠了。

% Let the user choose only files that end in .jpg 
[filename pathname]=uigetfile('*.jpg'); 
% Use fullfile to join file parts! It is OS independent. 
fullpath=fullfile(pathname, filename); 

if length(filename) > 8 && strcmp(filename(end-8:end),'_cam1.jpg') 
    stuff = imread(fullpath); 
    ... 
elseif length(filename) > 8 && strcmp(filename(end-8:end),'_cam2.jpg') 
    stuff = imread(fullpath); 
    ... 
end 

這不是最具魅力的代碼,但它應該完成工作。

3

您可以選擇一個文件夾,然後導入只有那些通過直接dir()和通配符*匹配的模式,其圖片:

dir('C:\Users\username\Desktop\folder\*_cam*.jpg') 
相關問題