How to perform arithmetic operation that would affect all variables in a folder at once

2 次查看(过去 30 天)
There are 5 variables in a folder (crate1, crate2, crate3, crate4, crate5). Each of these variables have 3 sub-variables inside them. The 3 sub-variables have same names but different values, for all the variables. For example, crate1 has month, time, date. Crate2 also has month, time, date. And so on up to crate5... The task needed is to divide sub-variables (only month and time) by 0.5, for all the variables crate1 to crate5... Instead of doing it manually one after other, is there a way I could do for all at same time?
  7 个评论
Stephen23
Stephen23 2021-12-29
"The task needed is to divide sub-variables (only month and time) by 0.5..."
Multiplying by two is probably clearer.
Ayobami Meadows
Ayobami Meadows 2021-12-29
Truly correct. But also understand that these are not the actual values of the task. I just create these samples to clearly demonstrate what I need to fulfill the main task with the original values.

请先登录,再进行评论。

采纳的回答

Matt J
Matt J 2021-12-28
编辑:Matt J 2021-12-28
For scalar variables,
S=dir('crate*.mat');
month = arrayfun(@(s) load(s.name).month, S)/0.5;
time = arrayfun(@(s) load(s.name).time, S)/0.5;
EDIT: For non-scalar variables,
S=dir('crate*.mat');
month = cell2mat( arrayfun(@(s) load(s.name).month, S','uni',0) )/0.5;
time = cell2mat(arrayfun(@(s) load(s.name).time, S','uni',0) )/0.5;
  8 个评论

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Variables 的更多信息

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by