Building a matrix inside a for loop

Hi guys, can anyone help me with this please. Thanks.
So i have this Excel file. I filtered a column and then did some operations on the filtered data .
in the end, I wanna create a new matix, A, with the following characteristics. The matrix should have dimension: partID rows* 5 columns. First colum should contain the partID number (from 3 to 15), second column should contain the value of M associated with the partID, third column S, fourth m and fifth s.
how do i build A inside the cycle?

6 comentarios

Turlough Hughes
Turlough Hughes el 15 de Mayo de 2020
Can you share the file?
Murstoe
Murstoe el 15 de Mayo de 2020
thanks you, Here is the file excel.
Turlough Hughes
Turlough Hughes el 23 de Mayo de 2020
Murstoe, it's bad form to remove your question after being given an answer. Can you put it back?
Original question from Google Cache:
"Building a matrix inside a for loop"
Hi guys, can anyone help me with this please. Thanks.
So i have this Excel file. I filtered a column and then did some operations on the filtered data .
in the end, I wanna create a new matix, A, with the following characteristics. The matrix should have dimension: partID rows* 5 columns. First colum should contain the partID number (from 3 to 15), second column should contain the value of M associated with the partID, third column S, fourth m and fifth s.
how do i build A inside the cycle?
xlsData = xlsread('PartS_all.csv');
partID=xlsData(:,4);
for partID=3:15
tenpm=xlsData(xlsData(:,4)==partID,:);
part=sortrows(tenpm, 2); %Sort second column
M(partID)=mean(part(:,8));
S(partID)=std(part(:,8));
m(partID)=mean(part(:,11));
s(partID)=std(part(:,11));
A=
end
Murstoe
Murstoe el 23 de Mayo de 2020
Guys I’m so sorry I don’t know what happened to it. I will sure fix it. I apologise again
Rena Berman
Rena Berman el 1 de Jun. de 2020
(Answers Dev) Restored edit

Iniciar sesión para comentar.

 Respuesta aceptada

Turlough Hughes
Turlough Hughes el 16 de Mayo de 2020
Editada: Turlough Hughes el 16 de Mayo de 2020
You could do it as follows:
xlsData = xlsread('PartS_all.xlsx');
partID = xlsData(:,4);
uPartID = unique(partID).'; % Unique part IDs
% Preallocate space
c = 0;
A = zeros(numel(uPartID),5);
for currPartID = uPartID
c = c+1;
part = xlsData(xlsData(:,4) == currPartID,:); %edit
A(c,:) = [currPartID mean(part(:,8)) std(part(:,8)) mean(part(:,11)) std(part(:,11))];
end

2 comentarios

Murstoe
Murstoe el 16 de Mayo de 2020
I get the following error:
Index in position 2 exceeds array bounds (must not exceed 1).
Error in Untitled (line 25)
A(c,:) = [currPartID mean(part(:,8)) std(part(:,8)) mean(part(:,11)) std(part(:,11))];
Turlough Hughes
Turlough Hughes el 16 de Mayo de 2020
I made a mistake. It should work fine now.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Data Import from MATLAB en Centro de ayuda y File Exchange.

Preguntada:

el 15 de Mayo de 2020

Comentada:

el 1 de Jun. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by