메트랩 사용문의 "각 변수에 대해 조건을 충족하는 값의 평균값, 최대값, 최소값 구하기"
1 view (last 30 days)
Show older comments
<질문>
1행에 bold체는 변수(7개)이며, 2행부터는 각변수의 값입니다.
보안상 데이터 이미지 삽입이나 첨부가 어려운점 양해부탁드립니다.
1. temperature-10C일때, 각 포지션에서 E1의 평균값(position1~4의 E1값의 평균), 최대값, 최소값을 구하여 excel file a행, b열에 입력한다. 명력어 사용방법에 대해 여쭤봅니다
2. temperature -10C일때, E1의 평균값, 최대값, 최소값을갖는 포지션을 확인하여 excel file c행, d열에 입력한다. 명령어 사용방법에 대해 여쭤봅니다
<예시 Data>
Position Temperature Time E1 E2 E3 E4
1 -10 0 15.8 52.3 66.5 66.5
1 0 10 11.3 40.1 45.1 45.1
1 30 20 12.7 26.2 55.7 55.7
1 60 30 13.0 23.3 58.5 58.5
2 -10 0 13.9 22.4 58.0 58.0
2 0 10 17.8 51.3 56.0 56.0
2 30 20 15.9 29.8 55.6 55.6
2 60 30 16.4 28.1 55.3 55.3
3 -10 0 17.0 26.3 54.9 54.9
3 0 10 17.5 24.6 54.6 54.6
3 30 20 18.0 22.8 54.3 54.3
3 60 30 18.5 21.1 54.0 54.0
4 -10 0 19.0 19.3 53.7 53.7
4 0 10 19.6 17.6 53.4 53.4
4 30 20 20.1 15.9 53.1 53.1
4 60 30 20.6 14.1 52.8 52.8
0 Comments
Answers (1)
Angelo Yeo
on 7 Jul 2023
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")
0 Comments
See Also
Categories
Find more on 스프레드시트 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!