clear;
temp = [...
1 -10 0 15.8000000000000 52.3000000000000 66.5000000000000 66.5000000000000
1 0 10 11.3000000000000 40.1000000000000 45.1000000000000 45.1000000000000
1 30 20 12.7000000000000 26.2000000000000 55.7000000000000 55.7000000000000
1 60 30 13 23.3000000000000 58.5000000000000 58.5000000000000
2 -10 0 13.9000000000000 22.4000000000000 58 58
2 0 10 17.8000000000000 51.3000000000000 56 56
2 30 20 15.9000000000000 29.8000000000000 55.6000000000000 55.6000000000000
2 60 30 16.4000000000000 28.1000000000000 55.3000000000000 55.3000000000000
3 -10 0 17 26.3000000000000 54.9000000000000 54.9000000000000
3 0 10 17.5000000000000 24.6000000000000 54.6000000000000 54.6000000000000
3 30 20 18 22.8000000000000 54.3000000000000 54.3000000000000
3 60 30 18.5000000000000 21.1000000000000 54 54
4 -10 0 19 19.3000000000000 53.7000000000000 53.7000000000000
4 0 10 19.6000000000000 17.6000000000000 53.4000000000000 53.4000000000000
4 30 20 20.1000000000000 15.9000000000000 53.1000000000000 53.1000000000000
4 60 30 20.6000000000000 14.1000000000000 52.8000000000000 52.8000000000000];
myTbl = table;
myTbl.Position = temp(:, 1);
myTbl.Temperature = temp(:, 2);
myTbl.Time = temp(:, 3);
myTbl.E1 = temp(:, 4);
myTbl.E2 = temp(:, 5);
myTbl.E3 = temp(:, 6);
myTbl.E4 = temp(:, 7);
%% 1
%{
1. temperature-10C일때, 각 포지션에서 E1의 평균값(position1~4의 E1값의 평균),
최대값, 최소값을 구하여 excel file a행, b열에 입력한다. 명력어 사용방법에 대해 여쭤봅니다
%}
E1_Pos1_mean = mean(myTbl.E1(myTbl.Temperature == -10 & myTbl.Position == 1));
E1_Pos2_mean = mean(myTbl.E1(myTbl.Temperature == -10 & myTbl.Position == 2));
E1_Pos3_mean = mean(myTbl.E1(myTbl.Temperature == -10 & myTbl.Position == 3));
E1_Pos4_mean = mean(myTbl.E1(myTbl.Temperature == -10 & myTbl.Position == 4));
E1_Pos1_max = max(myTbl.E1(myTbl.Temperature == -10 & myTbl.Position == 1));
E1_Pos2_max = max(myTbl.E1(myTbl.Temperature == -10 & myTbl.Position == 2));
E1_Pos3_max = max(myTbl.E1(myTbl.Temperature == -10 & myTbl.Position == 3));
E1_Pos4_max = max(myTbl.E1(myTbl.Temperature == -10 & myTbl.Position == 4));
E1_Pos1_min = min(myTbl.E1(myTbl.Temperature == -10 & myTbl.Position == 1));
E1_Pos2_min = min(myTbl.E1(myTbl.Temperature == -10 & myTbl.Position == 2));
E1_Pos3_min = min(myTbl.E1(myTbl.Temperature == -10 & myTbl.Position == 3));
E1_Pos4_min = min(myTbl.E1(myTbl.Temperature == -10 & myTbl.Position == 4));
mtxToExcel = [E1_Pos1_mean, E1_Pos1_max, E1_Pos1_min;
E1_Pos2_mean, E1_Pos2_max, E1_Pos2_min;
E1_Pos3_mean, E1_Pos3_max, E1_Pos3_min;
E1_Pos4_mean, E1_Pos4_max, E1_Pos4_min];
writematrix(mtxToExcel, "q1.xlsx", "Range", "B1") % A행 B열이 무엇인지 알 수 없음.
%% 2
%{
2. temperature -10C일때, E1의 평균값, 최대값, 최소값을갖는 포지션을 확인하여
excel file c행, d열에 입력한다. 명령어 사용방법에 대해 여쭤봅니다
%}
% 평균값을 갖는 포지션이라는 것은 없음.
idxNegative10 = find(myTbl.Temperature == -10); % 온도가 -10도 인 것들의 인덱스
[~, idxMinAmongNegative10] = min(myTbl.E1(idxNegative10)); % 온도가 -10도 인 인덱스들 중에 몇 번째가 최솟값인가
[~, idxMaxAmongNegative10] = max(myTbl.E1(idxNegative10)); % 온도가 -10도 인 인덱스들 중에 몇 번째가 최댓값인가
minRow = idxNegative10(idxMinAmongNegative10);
maxRow = idxNegative10(idxMaxAmongNegative10);
writematrix([minRow; maxRow], "q2.xlsx", "D3")