Help Using Variable In Workspace in For Loop

Hi y’all,

I have a variable in my Workspace that I want to reference in my for loop, but it doesn’t work. It only works if I define that same variable in my loop. How can I fix this?

output_folder_location = '/Users/blah_blah/Test_Output' ; % variable in Workspace
function [] = each_day_table(folder_referenced)
 dimention = size(folder_referenced) ; 
   for i = 1:dimention(2)
    datastore_result = datastore(folder_referenced(i)) ;
    original_data = readall(datastore_result) ; 
    with_datetime = add_datetime_column(original_data, folder_referenced(i)) ; 
    [folder, name, ext] = fileparts(folder_referenced(i)) ; 
    output_filename = fullfile(output_folder_location, "new_" + name + ext) ; % where I’m referencing variable from Workspace 
    writetable(with_datetime, output_filename) % Saving files.
    end 
end

It only works when I do:

   …
   [folder, name, ext] = fileparts(folder_referenced(i)) ; 
   output_folder_location = '/Users/blah_blah/Test_Output' ; % Defining variable here 
   output_filename = fullfile(output_folder_location, "new_" + name + ext) ;
   writetable(with_datetime, output_filename) % Saving files.
   … 

 채택된 답변

Cris LaPierre
Cris LaPierre 2025년 4월 30일
편집: Cris LaPierre 2025년 4월 30일

0 개 추천

Your for loop has been defined inside a function. Functions have their own workspace. You need to either pass the variable into the function as an input argument or define it inside the function.
output_folder_location = '/Users/blah_blah/Test_Output' ; % variable in Workspace
function [] = each_day_table(folder_referenced,output_folder_location)
dimention = size(folder_referenced) ;
for i = 1:dimention(2)
datastore_result = datastore(folder_referenced(i)) ;
original_data = readall(datastore_result) ;
with_datetime = add_datetime_column(original_data, folder_referenced(i)) ;
[folder, name, ext] = fileparts(folder_referenced(i)) ;
output_filename = fullfile(output_folder_location, "new_" + name + ext) ; % where I’m referencing variable from Workspace
writetable(with_datetime, output_filename) % Saving files.
end
end

댓글 수: 1

Kristine
Kristine 2025년 4월 30일
Ah! That was so simple, I don't know how I overlooked that. Thank you!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

제품

릴리스

R2024b

질문:

2025년 4월 30일

댓글:

2025년 4월 30일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by