Append rows to a starting row

14 views (last 30 days)
Jeffrey Dhas
Jeffrey Dhas on 24 Oct 2021
Edited: Jeffrey Dhas on 24 Oct 2021
I have some data exported in a txt file which has 780 rows x 5 columns. The problem I am running into is that the correct interpretation of the data takes the 1st row, then append the 2nd row onto the first, then the 3rd onto this appended set, and so on...
Does anyone have an elegant way to achieve this? I have included a sample output of just the first two rows as an example:

Accepted Answer

the cyclist
the cyclist on 24 Oct 2021
Edited: the cyclist on 24 Oct 2021
It would be much easier for us to help if you uploaded
  • your data file
  • your code (instead of an image of your code)
However, it seems all you need is to take the transpose, and then convert to a vector. I think this will do what you want, but I can't be sure because I can't test it against your data:
T = csvread('matlab test.csv');
temp = T.';
output = temp(:);
The reason for doing the transpose first is that when the last line of code converts to a vector, it is going to read down each column in turn (because that is how the array is stored internally).
FYI, another handy command for doing such manipulations is reshape.
  1 Comment
Jeffrey Dhas
Jeffrey Dhas on 24 Oct 2021
Edited: Jeffrey Dhas on 24 Oct 2021
I appreciate the quick response! I have attached the data file. Here is my code as well listed below:
The ultimate goal is to convert all the data into a single row or single column based on the order desired:
clear all; close all; clc
T = csvread('matlab test.csv');
for i = 1:2
new = T(i,:)
a(i) = new(1);
b(i) = new(2);
c(i) = new(3);
d(i) = new(4);
e(i) = new(5);
end
test2 = [a(1); b(1); c(1); d(1); e(1); a(2); b(2); c(2); d(2); e(2)]
%final = [a b c d e]'

Sign in to comment.

More Answers (0)

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!