Help Using Variable In Workspace in For Loop

5 visualizaciones (últimos 30 días)
Kristine
Kristine el 30 de Abr. de 2025
Comentada: Kristine el 30 de Abr. de 2025

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.
   … 

Respuesta aceptada

Cris LaPierre
Cris LaPierre el 30 de Abr. de 2025
Editada: Cris LaPierre el 30 de Abr. de 2025
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 comentario
Kristine
Kristine el 30 de Abr. de 2025
Ah! That was so simple, I don't know how I overlooked that. Thank you!

Iniciar sesión para comentar.

Más respuestas (0)

Productos


Versión

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by