Making subplots by reading many files in Matlab

조회 수: 3 (최근 30일)
Ivan Mich
Ivan Mich 2019년 9월 27일
댓글: Adam 2019년 9월 28일
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
Ivan Mich
Ivan Mich 2019년 9월 27일
Excuse me but i dont understand the hFig you use in the command.
Adam
Adam 2019년 9월 28일
It's just a variable name I usually use for a figure handle returned when you create a figure.

댓글을 달려면 로그인하십시오.

답변 (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
Ivan Mich
Ivan Mich 2019년 9월 27일
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

댓글을 달려면 로그인하십시오.


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
Adam
Adam 2019년 9월 28일
If you are in a recent enough version of Matlab that has strings then
"Number_00" + ( 1:9 )
should work too.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Line Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by