# Plot data from text file

8 views (last 30 days)
Izem on 23 Sep 2020
Commented: Rik on 23 Sep 2020
I want to plot ReP^2+ImP^2 as function of numero = 5, 10, 15 …145 for each mode(m,n) I would like to have something like this with the name of the mode on each curve. Here is the beginning of my code, anyone can help ?
%store in temp variable
if isempty(data{i}),continue,end
str=data{i};
line = str2num(str);
....
You can find my file attached.

Rik on 23 Sep 2020
The way I see it, you need to follow these steps:
1. Load the data into Matlab variables
2. Get the data for a single line
3. Plot the line and create an annotation (e.g. with the text function)
4. Repeat 2-3 for each combination of n and m
Try each step. If you have trouble with any of them, please describe what you tried.
Izem on 23 Sep 2020
I already start doing exactly what you described before posting here but it will be long since I have many (m,n) (14 in this case) so I will need 14 if m == .. n ==.. I wonder if there is a shorter way to do it. I note that we can know the combinations from line 6 in the text file : 'VECTEUR MODE : 4 4 4 4 3 3 3 2 2 2 1 1 1 1' which mean that we will have :
4 modes starting with 0 : m=0 and n change from 1 to 4 (0 1, 0 2, 0 3, 0 4)
4 modes starting with 1 (1 1, 1 2, 1 3, 1 4)
...
1 mode starting with 13 (13, 1)
So please tell me if you think there is a smarter way to do it using line 6 ? otherwise I will do what you already suggested.
Rik on 23 Sep 2020
You should convert the entire file. That means you will have a vector m with 5145 elements. Then you can use unique and use the result for a for loop, in which you can use ismember to extract all positions where m has a specific value.
You can also use that line to extract the values of m and n you need to combine.