Dynamically Creating Variable Alternatives
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Eric Hoffmann
el 24 de Mayo de 2022
Comentada: Eric Hoffmann
el 25 de Mayo de 2022
Hi,
Currently I have a 3D matrix of zeros (1000,1000,430) and I need to iterate through slices 1:430. I want each slice done in parallel as each slice can be done independently and I have access to a super computer with many cores and each slice takes around 4800 seconds on my PC. Each slice of zeros will then be given different values in each index defining locations of the brain. Without parfor I can just simply call my 3D preallocated matrix of zeros and redefine different indexes. However, this matrix can't be called and edited by different cores in parallel. This means I need an independent matrix for each slice. Currently, I have preallocated matrixes A1-A430 using the forbidden eval function in a for loop. However, I am unsure how to call these matrixes in a for loop without using the eval function. For example when I am in slice 100 I would need to edit A100. I am unsure how to do this without using eval. On that note I assumed other structures cannot be called in parallel and this is why I stuck with the forbidden dynamic variable creation. Any advice would be greatly appreciated.
2 comentarios
Respuesta aceptada
Walter Roberson
el 24 de Mayo de 2022
parfor sliceno=1:size(Data, 3)
slice = Data(:, :, sliceno);
change slice
Data(:, :, sliceno) = slice;
end
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!