【MATLAB】CSV 파일에 계산 셀(수식 셀)을 추가하여 EXCEL 파일로 저장
소개
matlab
는 수치 계산에 강하고, 음향 파일을 열어 진폭 그래프를 출력하거나 FFT하는 등을 간단하게 실시할 수 있다.다양한 분석 결과를 고객에게 제출하는 경우는, 당사의 경우는
excel
파일(xlsx)의 경우가 많고, 또 고객이 파라미터를 바꾸면서 확인할 수 있도록, 계산 결과는 원시의 수치가 아니고 , 계산 셀을 사용합니다."계산 셀"이라는 것은 여기서
=round(A1*B1, 0)
같은 느낌의 수식이 들어간 셀을 말하고 있다.
계산 셀이 있기 때문에 지금까지
matlab
로 숫자 계산하여 CSV
파일에 저장 excel
에서 CSV
파일을 열고 계산 셀을 추가하고 xlsx로 저장 라고 하는 순서를 밟고 있어, 계산 셀을 추가하는 작업이 멘도치-였다.
이번에는 위 작업을 자동화하는 것으로
matlab
에서 키와 체중이 입력된 CSV
파일을 열고 BMI를 계산하여 xlsx
로 저장하는 스크립트를 써본다.사용할 CSV 파일
다음과 같은
CSV
파일을 준비했습니다.1
이름
생년월일
신장(cm)
체중(kg)
hoge huga
yyyy/m/d
x
y
이것은 적절한 이름 (신장 체중 .csv)으로 저장되었습니다.
BMI 값을 matlab로 계산
구현
clc
close all
clear all
path = 'C:\Users\hogehoge';
file = '身長体重.csv';
% 名前,生年月日,身長(cm),体重(kg)
% 桜 衣之,2021/4/4,155,47
% ...
filepath = fullfile(path, file);
% ファイルを開いてcellに格納
T = readcell(filepath,'DatetimeType','text');
% 身長(cm)
height = cell2mat(T(2:end,3));
height = height / 100;% 身長(m)に直す
% 体重(kg)
weight = cell2mat(T(2:end,4));
% BMI = 体重kg ÷ (身長m)^2
BMI = weight ./ (height .^2);
% cell配列にする
TBMI = num2cell(BMI);
TBMI = [{'BMI'}; TBMI];% 1行目を追加
% cellの連結
Tout = [T TBMI];
% ファイルに書き込む
[path, file] = fileparts(filepath);
newFile = sprintf('%s_addBMI.xlsx', file);
outputFilePath = fullfile(path, newFile);
writecell(Tout, outputFilePath);
추가하려는 열을
cell
로 준비하고 readcell
에서 읽은 cell
에 연결하기 만하면됩니다.결과
결과는 다음과 같습니다. BMI 계산 결과를 추가 할 수있었습니다.
BMI 값을 Excel로 계산
이전 섹션에서 BMI 계산 결과를 추가하여 xlsx 파일로 저장할 수있었습니다.
그러나 원하는 것은 계산 셀의 추가입니다.
아래 그림과 같이 BMI를
matlab
대신 excel
로 계산하고 싶습니다.구현
%(Toutを求めるところまでは上と同じなので中略)
% 計算セルをさらに追加する
BMI2 = cell(size(TBMI));
BMI2(1) = {"計算セル"};
for n = 2:length(BMI2)
% =D2/(C2/100)^2
BMI2(n) = {"=D" + n + "/(C" + n + "/100)^2"};
end
Tout2 = [Tout BMI2];
% ファイルに書き込む
[path, file] = fileparts(filepath);
newFile = sprintf('%s_addBMI.xlsx', file);
outputFilePath = fullfile(path, newFile);
writecell(Tout2, outputFilePath,'UseExcel',true);% UseExcelオプションを追加
계산 셀을 추가하는 방법은 【MATLAB】 하이퍼 링크 첨부 텍스트의 Excel에의 기입 자동화을 참조했다.
그렇게하기 쉽고 수식을 그대로
string
에 넣고 출력 할 때 writecell
에 UseExcel
옵션을 붙였다. UseExcel
옵션을 알지 못했습니다.또,
D
나 C
등의 열명이 하드 코딩이 되고 있지만, 이것이 신경이 쓰이는 경우는 이하등에 열 번호를 엑셀 표기(또는 그 반대)로 변환하는 구현이 있다.I need to convert a number into its column name equivalent
결과
예상대로 결과가 되었다.
물론
excel
에서 체중과 같은 값을 편집하면 BMI 값도 자동으로 업데이트됩니다.요약
이번에는
matlab
에서 계산 셀이 들어있는 excel
파일을 만들었습니다.이 상태에서
excel
와 화해하고 싶다.htps : // 그럼.ぃきぺぢ아. 오 rg/우키/%에3%81%8에%에3%81%아1%에3%81%93%에3%81%BC%에3%82%8C%에3%83%95% 에 3% 83% 에 B% 에 3% 83% BC% 에 3% 83% 84% 에 3% 82% BF% 에 3% 83% 에 B% 에 3% 83% 88 ↩
Reference
이 문제에 관하여(【MATLAB】CSV 파일에 계산 셀(수식 셀)을 추가하여 EXCEL 파일로 저장), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/dokagui_tairan/items/16661e6376fc464e6364텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)