【MATLAB】CSV 파일에 계산 셀(수식 셀)을 추가하여 EXCEL 파일로 저장
소개
matlab
는 수치 계산에 강하고, 음향 파일을 열어 진폭 그래프를 출력하거나 FFT하는 등을 간단하게 실시할 수 있다.다양한 분석 결과를 고객에게 제출하는 경우는, 당사의 경우는
excel
파일(xlsx)의 경우가 많고, 또 고객이 파라미터를 바꾸면서 확인할 수 있도록, 계산 결과는 원시의 수치가 아니고 , 계산 셀을 사용합니다."계산 셀"이라는 것은 여기서
=round(A1*B1, 0)
같은 느낌의 수식이 들어간 셀을 말하고 있다.
계산 셀이 있기 때문에 지금까지
matlab
로 숫자 계산하여 CSV
파일에 저장 excel
에서 CSV
파일을 열고 계산 셀을 추가하고 xlsx로 저장 라고 하는 순서를 밟고 있어, 계산 셀을 추가하는 작업이 멘도치-였다.
이번에는 위 작업을 자동화하는 것으로
matlab
에서 키와 체중이 입력된 CSV
파일을 열고 BMI를 계산하여 xlsx
로 저장하는 스크립트를 써본다.사용할 CSV 파일
다음과 같은
CSV
파일을 준비했습니다.![](https://s1.md5.ltd/image/a74d70f119988a4985c4daad03d4a069.png)
이름
생년월일
신장(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 계산 결과를 추가 할 수있었습니다.
![](https://s1.md5.ltd/image/87ab9169062d3988f6d635164179ea7b.png)
BMI 값을 Excel로 계산
이전 섹션에서 BMI 계산 결과를 추가하여 xlsx 파일로 저장할 수있었습니다.
그러나 원하는 것은 계산 셀의 추가입니다.
아래 그림과 같이 BMI를
matlab
대신 excel
로 계산하고 싶습니다.![](https://s1.md5.ltd/image/994ae22aaf7ae311faf2312419984d5f.png)
구현
%(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 값도 자동으로 업데이트됩니다.![](https://s1.md5.ltd/image/1543cfe2b23632191e55acd9ea0a23fc.png)
요약
이번에는
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.)