Data.png
Hi Everyone, I'm new to Matlab, Please help me. Much Appreciated.
I struggling with Matlab, ok i got almost more than 1 million of data, 1 (first column) refers to number of cycle, (2nd column) -360 to + 360 refers to crank angle, (3rd column) refers to pressure data.
I need to rearrange the data so that i got
column 1: crank angle
column 2: pressure data for cycle 1 ( referring to angle in column 1)
column 3: pressure data for cycle 2
and so on till cycle 143

댓글 수: 5

John D'Errico
John D'Errico 2019년 3월 15일
This is not an indexing problem at all. Just learn how to use reshape.
However, if your result will not have the same number of elements in each cycle, then you will need to split them into cells of a cell array, since a regular array must contain the same number of elements in every row and column.
madhan ravi
madhan ravi 2019년 3월 15일
Agree with John D'Errico , in addition to that please share your data and write explicitly show how your desired output should look like.
Jafnii Jalaludin
Jafnii Jalaludin 2019년 3월 15일
I dont really understand, could u guide me to a tutorial/ solution that related to my problem?
John D'Errico
John D'Errico 2019년 3월 15일
Read the help for reshape. More importantly, I would suggest you are still thinking as if you are using a spreadsheet. So what you need most is to read the getting started tutorials. Actually spend some time learning to use MATLAB. Reshape is a basic tool that you will find in the very beginning. Otherwise, you will be asking basic questions at every opportunity, but still thinking in terms of a spreadsheet.
Jafnii Jalaludin
Jafnii Jalaludin 2019년 3월 15일
편집: Stephen23 2019년 3월 15일
@madhanravi i have attached how i want the output, i cant share the data since it is too large.
So in order to get like in the picture, i need to learn on reshaping?

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

 채택된 답변

Stephan
Stephan 2019년 3월 15일
편집: Stephan 2019년 3월 15일

0 개 추천

Hi,
as suggested in the comments read the documentation. Here is a small example which is near by your problem. Try to understand what happens by reading and by adapting this to your problem:
% Building a small example
A = repelem([1 2 3]',5,1);
A(:,2) = repmat((-2:2)',3,1);
A(:,3) = rand(15,1) + 1
% Reshaping the way you want it
B = [A(1:sum(A(:,1)==1),2), reshape(A(:,3),sum(A(:,1)==1),[])]
Best regards
Stephan

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

제품

릴리스

R2018a

질문:

2019년 3월 15일

댓글:

2019년 3월 19일

Community Treasure Hunt

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

Start Hunting!

Translated by