How can I import this data with a for loop?

2 views (last 30 days)
Lucas
Lucas on 5 Dec 2023
Commented: Matt J on 5 Dec 2023
Data3 = importdata('PendulumTestData/TD3/IK/HR_1.mot')
Data5 = importdata('PendulumTestData/TD5/IK/HR_1.mot')
Data7 = importdata('PendulumTestData/TD7/IK/HR_1.mot')
Data9 = importdata('PendulumTestData/TD9/IK/HR_1.mot')
Data11 = importdata('PendulumTestData/TD11/IK/HR_1.mot')
Data12 = importdata('PendulumTestData/TD12/IK/HR_1.mot')
Data14 = importdata('PendulumTestData/TD14/IK/HR_1.mot')
Data15 = importdata('PendulumTestData/TD15/IK/HR_1.mot')
Data16 = importdata('PendulumTestData/TD16/IK/HR_1.mot')
Data17 = importdata('PendulumTestData/TD17/IK/HR_1.mot')
x = [3 5 7 9 11 12 14 15 16 17];
for i = 1:10
Data{i} = importdata(sprintf('PendulumTestData/TD%.1f/IK/HR_1.mot', x(i)));
end
I tried something, but it doesn't work...

Answers (2)

Matt J
Matt J on 5 Dec 2023
Data{i} = importdata(compose("PendulumTestData/TD%d/IK/HR_1.mot", x(i)));

Les Beckham
Les Beckham on 5 Dec 2023
You were very close.
x = [3 5 7 9 11 12 14 15 16 17];
for i = 1:numel(x)
fn = sprintf('PendulumTestData/TD%d/IK/HR_1.mot', x(i))
% ^ use %d here
% Data{i} = importdata(fn); % commented out so it will run here
end
fn = 'PendulumTestData/TD3/IK/HR_1.mot'
fn = 'PendulumTestData/TD5/IK/HR_1.mot'
fn = 'PendulumTestData/TD7/IK/HR_1.mot'
fn = 'PendulumTestData/TD9/IK/HR_1.mot'
fn = 'PendulumTestData/TD11/IK/HR_1.mot'
fn = 'PendulumTestData/TD12/IK/HR_1.mot'
fn = 'PendulumTestData/TD14/IK/HR_1.mot'
fn = 'PendulumTestData/TD15/IK/HR_1.mot'
fn = 'PendulumTestData/TD16/IK/HR_1.mot'
fn = 'PendulumTestData/TD17/IK/HR_1.mot'
  2 Comments
Matt J
Matt J on 5 Dec 2023
@Lucas If your problem is solved, please accept-click the most appropriate answer.

Sign in to comment.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!