2017-02-12 2 views
2

이미지 변환에 사용해야하는 복잡한 함수를 각각 정의하는 n 개의 m- 파일 (cI_0001.m, cI_0002.m, ...)이있는 디렉토리가 있습니다. 나는 모든 주어진 기능에 대한 이미지 C에 imtransform을 적용 루프를 원하는 간단한 경우Matlab : 일련의 m 파일에있는 함수에 대한 참조

conformal = maketform('custom', 2, 2, [], @cI_0001, []); 
T = imtransform(C, conformal, ...); 

:의 종류를 imtransform. 그래서 확장자 (m_name_list)가없는 m- 파일 이름을 가진 디렉토리를위한 셀 배열을 만들었고, m_name_list의 요소에 maketform()에서 포인터의 종류가 필요하다고 생각합니다. 어떻게 이것을 올바르게 공식화 할 수 있습니까?

for i=1:n 
    conformal = maketform('custom', 2, 2, [], @pointer_to_the_ith_element_in_m_name_list, []); 
    T = imtransform(C, conformal, ...); 
    imwrite(T, ...); 
end 

나는 How to set function arguments to execute different set of m-files에서 실행과 제안을 보았다 그러나 이것은 maketform에 호출 기능()와 함께 작동하지 않는 것 같습니다.

편집 : 나는 + 확장 기능 이름 목록을 포함 포인터 (경로 목록 + 이름으로 확장 가능) 할 수있는 :

m_dir_entries = dir(strcat(CM_inverse_folder_path, '*.m')); 
m_name_list = cell(1,length(m_dir_entries)); 
for k=1:length(m_dir_entries) 
    m_name_list{k} = m_dir_entries(k).name; 
end 

답변

1

당신은에 함수 핸들을 만들 str2func을 사용할 수 있습니다 각 .m 파일

% Add the folder to your path 
addpath(CM_inverse_folder_path) 

function_list = {'cI_0001.m', 'cI_0002.m'}; 

% Remove the extensions 
[~, function_list] = cellfun(@fileparts, function_list, 'UniformOutput', false); 

for k = 1:n 
    func = str2func(function_list{k}); 
    conformal = maketform('custom', 2, 2, [], func, []); 
    T = imtransform(C, conformal, ...); 
    imwrite(T, ...); 
end 

% Remove the folder from the path 
rmpath(CM_inverse_folder_path) 
+0

function_list의 요소는 names + extensions 또는 paths + names + ext이어야합니다. m- 파일이 다른 디스크에 있기 때문에? 이름 + 내선 번호를 사용하는 경우 내가 가지고 : 오류 tformarray (라인 233) M = tforminv (G, T); imtransform의 오류 (줄 276) B = tformarray (args.A, args.tform, args.resampler, tdims_a, tdims_b, ... conformalInverse_Management_Test의 오류 (줄 93) T = imtransform (C, 컨 포멀, xData, 'YData', yData, '크기', [cm_out_h cm_out_w], 'FillValues', FillValues_color) –

+0

@ GünterBachelier 죄송합니다, 아마도 당신이 필요합니다 확장자를 사용하지 말 것. 위의 수정 된 코드를 보았습니다. – Suever

+0

addpath (CM_inverse_folder_path)와 확장명이없는 함수 이름의 조합이 있습니다. 매우 감사합니다! –

관련 문제