store multiple outputs into one matrix
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
My code currently produces 14 individual variables (x1-7 and y1-7), I am currently plotting these on a graph using hold on statements.
Is there a way to save these into 2 7x1 doubles, one for x variables and one for y variables so I can just plot these against each other?
file = dir('ATF_0.csv'); %read the files into matlab
num_files = length(file); %record how many files have been found
T = table2array(readtable(file.name)); %read in the values
T = T(T(:,6)<=-0.07,:);
%s1
S1 = T(:,5) >= 0.14 & T(:,5) <= 0.149;
TS1 = T(S1, :);
[y1, idx1] = max(TS1(:, 6));
x1 = TS1(idx1, 5);
%s2
S2 = T(:,5)>= 0.13 & T(:,5) <= 0.139;
TS2 = T(S2, :);
[y2, idx2] = max(TS2(:, 6));
x2 = TS2(idx2, 5);
%s3
S3 = T(:,5)>= 0.121 & T(:,5) <= 0.129;
TS3 = T(S3, :);
[y3, idx3] = max(TS3(:, 6));
x3 = TS3(idx3, 5);
%s4
S4 = T(:,5)>= 0.11 & T(:,5) <= 0.12
TS4 = T(S4, :);
[y4, idx4] = max(TS4(:, 6));
x4 = T(idx4,5);
%s5
S5 = T(:,5)>= 0.1 & T(:,5) <= 0.109
TS5 = T(S5, :);
[y5, idx5] = max(TS5(:, 6));
x5 = TS5(idx5, 5);
%s6
S6 = T(:,5)>= 0.09 & T(:,5) <= 0.099
TS6 = T(S6, :);
[y6, idx6] = max(TS6(:, 6));
x6 = TS6(idx6, 5);
%s7
S7 = T(:,5)>= 0.08 & T(:,5) <= 0.089
TS7 = T(S7, :);
[y7, idx7] = max(TS7(:, 6));
x7 = TS7 (idx7, 5);
0 Kommentare
Antworten (1)
Chris
am 22 Okt. 2021
Arrays with compatible dimensions can be concatenated using either square brackets or the cat() function.
In this case, it looks like your variables are all 1x1 arrays, so:
x = [x1; x2; x3; x4; x5; x6; x7];
would likely be sufficient to create a 7x1.
For a row vector instead of a column vector, use commas instead of semicolons.
2 Kommentare
Chris
am 22 Okt. 2021
Bearbeitet: Chris
am 22 Okt. 2021
Yes.
You could initialize x as an empty array:
x = []
and inside the for loop, concatenate it to itself.
x = [x; new_x];
another method:
x(end+1) = new_x;
Similarly for y.
I'm not sure whether this entirely answers your question. If you're trying to get x and y columns in the same array, that's also possible:
xy = [];
for ...
xy = [xy; new_x, new_y];
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!