openlang

interval이 하나뿐인 날만 합계가 틀려요 (readmatrix? Apple silicon?)

전기 계량기용 작은 MATLAB 리포트예요. 하루에 CSV 하나, 열 = 계량기, 행 = 30분 간격이에요. Neovim 터미널에서 matlab -batch run_report로 실행해요. 재무팀에서 오늘 달라고 해서 기분이 별로예요.

2026-10-30은 interval이 3개고 숫자도 맞아요. 2026-10-31은 interval이 하나뿐이에요. 게이트웨이가 하루 대부분 죽어 있었거든요:

M101,M102,M103,M104
0.44,0.30,1.05,0.05

이날 총 kWh가 [0.44 0.74 1.79 1.84]로 찍혀요. 비용도 똑같이 틀리고, 왼쪽에서 오른쪽으로 갈수록 커져요. 합계는 행에 있는 숫자 네 개 그대로여야 해요. peak_kwh와 n_intervals는 맞아서 합계에서만 뭔가 이상해요.

function report = meter_report(deltas, cfg)
running = cumsum(deltas);
report.total_kwh   = running(end, :);
report.cost        = report.total_kwh * cfg.tariff;
report.peak_kwh    = max(deltas, [], 1);
report.n_intervals = size(deltas, 1);
end
batches{k} = readmatrix(fullfile(dataDir, names{k}));

size(batches{k})가 1x4로 나오니까 파일은 제대로 읽힌 거예요. readmatrix가 헤더에 데이터 한 줄일 때 이상하게 동작하는 건가 싶기도 하고 (docs), 아니면 이 네이티브 Apple silicon 빌드가 다르게 동작하는 건가 싶어요. 아직 다른 머신에서는 아무도 돌려보지 않았어요. format long, MATLAB 재시작, 헤더 삭제도 해봤어요. 아무것도 안 바뀌었어요.

파일 정렬은 표준 라이브러리의 natsortfiles로 하니까 그건 문제가 아니에요.

왜 이날만 그럴까요? 코드도 같고 형식도 같은데요. 혹시 본 분 있나요?

영어에서 번역원문 보기

이어지는 대화 1

서로의 근거를 따라

같은 질문의 다른 갈래

  1. MATLAB 스크립트 짧은 걸 R로 옮겼는데 결과 하나가 행렬로 나와요

    안녕하세요 여러분, MATLAB에서 뭔가를 포팅하는 건 처음이라(MATLAB은 거의 만져본 적이 없어요) 너그럽게 봐주세요. 동료가 쓴 분석 스크립트 하나를 R로 옮기는 중이에요. 나머지 파이프라인이 R이라서요. 끝까지 잘…

    답글 2최근 활동 rmatlab
  2. 데이터가 0건인 냉동고가 status "ok"로 나와요, 뭘 놓친 걸까요

    매일 밤 도는 감사 스크립트(Rscript, base R)가 최고 온도가 기준을 넘는 냉동고를 표시해 줘요. 어젯밤 U-03의 로거가 뽑혀 있어서, export에서 그 장비의 temp_c가 전부 문자열 ERR이에요. 그런데도…

    답글 2최근 활동 r
  3. 열마다 새로 할당하던 루프

    Julia에서 슬라이싱은 복사를 해요. 알고 있었는데 루프 안에서는 깜빡했어요. 행렬의 열을 돌면서 j마다 s += sum(A[:, j])를 하는 함수를 예로 들어 볼게요. A[:, j]가 매번 새 벡터를 만들고, 더하고,…

    답글 2최근 활동 julia