MATLAB Answers

Making subplots by reading many files in Matlab

4 views (last 30 days)
Ivan Michael
Ivan Michael on 27 Sep 2019
Commented: Adam on 28 Sep 2019
Hello,
I have a question about making subplots in Matab by reading many files in Matlab. First of all, I have a code who reads many .txt files that have my data.
I have files like these: A_ac_s001.txt , A_ac_s002.txt, A_ac_s003.txt ,..., A_ac_s100.txt
and
A_bc_s001.txt, A_bc_s002.txt,...., A_bc_s100.txt .
I have created one loop in order to read the first "team" of my data files and one loop in order to read the second "team" of my data files.
S = dir('A_ac*.txt');
for k = 1:numel(S)
S(k).name
end
S = dir('A_bb*.txt');
for k = 1:numel(S)
S(k).name
end
I would like to create a subplot which will create 2 plots for the first two files of each team with the command subplot(1,2,1) and subplot(1,2,2). But it doesn't work , because the result are two figures. Also I would like the title to be changing for every figure plot( I mean following the loop of my data).
Could anyone help me?

  6 Comments

Show 3 older comments
Stephen Cobeldick
Stephen Cobeldick on 27 Sep 2019
Also note that your code does not import any file data and ignores the filenames entirely.
Most likely you should use those names to import that file data:
Ivan Michael
Ivan Michael on 27 Sep 2019
Excuse me but i dont understand the hFig you use in the command.
Adam
Adam on 28 Sep 2019
It's just a variable name I usually use for a figure handle returned when you create a figure.

Sign in to comment.

Answers (2)

Constantino Carlos Reyes-Aldasoro
Perhaps it is not working because other problems:
subtitle('%%%%%%%'N1')
The title of a subplot is still title and the argument should be a string, if N1 is a number this would go like this
title(strcat('%%%%%%%',num2str(N1)))

  1 Comment

Ivan Michael
Ivan Michael on 27 Sep 2019
I want the title of the first plot to be "Number 001" for example. The number of the second plot to be "Number 002". Imean i would like the title to be change according to the loop

Sign in to comment.


Constantino Carlos Reyes-Aldasoro
Ok in that case you will have something like
>> for k=1:9
name = strcat('Number_00',num2str(k))
end
name =
'Number_001'
name =
'Number_002'
name =
'Number_003'
name =
'Number_004'
name =
'Number_005'
name =
'Number_006'
name =
'Number_007'
name =
'Number_008'
name =
'Number_009'
That of course will only work up to 9, but you can use an "if" to have a different line if k>9.

  1 Comment

Adam
Adam on 28 Sep 2019
If you are in a recent enough version of Matlab that has strings then
"Number_00" + ( 1:9 )
should work too.

Sign in to comment.

Sign in to answer this question.