簡體   English   中英

如何在Matlab函數中將文件夾作為輸入?

[英]How do I put a folder as an input in a matlab function?

我需要一個通過文件夾並處理該文件夾中的每個文件的matlab函數。 我想輸入文件夾名稱和處理該文件夾中每個文件所需的文件名(從該文件夾中的所有其他圖像中減去一個圖像)。 我的函數還計算每個圖像的SD和平均值。 我希望我的函數返回一個矩陣,該矩陣可顯示與圖像數量一樣多的行,並帶有3列,分別指示:名稱,SD和每個圖像的平均值,以便將其導出到excel。 到目前為止,這是我的代碼,但是我確實缺少一些東西! 非常感謝你的幫助! 我已經為此工作了好幾天了!

function [m]=nenna(path,t)              %# folder path
path=(path)
files = dir( fullfile(path,'*.jpg') );   %# list all *.xyz files
files = {files.name}';                      %'# file names

data = cell(numel(files),1);%# store file contents

a=zeros(numel(files),3);

for i=1:numel(files)
    fname = fullfile(path,files{i});     %# full path to file
    x=imread(files);
    s=imread(t);
    j=imsubtract(x,s);
    j=double(j);
    u=std(j(:))
    q=mean(j(:))
    a(i)=[files(i);u;q]
end

如果你想在每行a有一個字符串和兩個數字,它應該是一個單元陣列:

... 
a=[]
for i ...
    ...
    a{i}={files{i} u q};
end
...

要獲取文件名,您需要

a{1}{1}
ans=
file1.jpg

要獲得數字,你要做

a{1}{2},a{1}{3}

(分別獲取std和file1.jpg的均值)
另一種方式來做到這一點是讓a一個結構數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM