What changes is required ?

2 次查看(过去 30 天)
Manav Divekar
Manav Divekar 2021-11-30
My excel contains multiple sheets. I am trying to return the weight from one sheet for corresponding input of name variable which is in the other sheet of same excel. For the code till now i was able to number of sheets present. how can i reach my end goal. Can I use xlsread instead
function [avgweight] = xls_patientvisits_bp (filename, name)
patients = readtable(filename,'sheet','patients');
visits = readtable(filename,'sheet','visits');
id = patients.patientid(strcmp(patients.Name, name));
avgweight = mean(visits.weight(strcmp(visits.patientid, id)));

回答(1 个)

Hiro Yoshino
Hiro Yoshino 2021-11-30
编辑:Walter Roberson 2021-11-30
Use MATLAB >> HOME >> Import Data >> YOUR EXCEL >> Import Option: function
It creates the following code for you to read your excel as a table.
function patientsandvisits = importfile(workbookFile, sheetName, dataLines)
%IMPORTFILE スプレッドシートからデータをインポート
% PATIENTSANDVISITS = IMPORTFILE(FILE) は、FILE という名前の Microsoft Excel
% スプレッドシート ファイルの最初のワークシートからデータを読み取ります。 データを table として返します。
%
% PATIENTSANDVISITS = IMPORTFILE(FILE, SHEET) は、指定されたワークシートから読み取ります。
%
% PATIENTSANDVISITS = IMPORTFILE(FILE, SHEET, DATALINES)
% は、指定されたワークシートから指定された行区間を読み取ります。DATALINES
% を正の整数スカラーとして指定するか、行区間が不連続の場合は正の整数スカラーからなる N 行 2 列の配列として指定します。
%
% 例:
% patientsandvisits = importfile("C:\Users\hyoshino\OneDrive - MathWorks\Desktop\patientsandvisits.xlsx", "patients", [2, 18]);
%
% READTABLE も参照してください。
%
% MATLAB からの自動生成日: 30-Nov-2021 15:06
%% 入力の取り扱い
% シートが指定されていない場合、最初のシートを読み取ります
if nargin == 1 || isempty(sheetName)
sheetName = 1;
end
% 行の始点と終点が指定されていない場合、既定値を定義します
if nargin <= 2
dataLines = [2, 18];
end
%% インポート オプションの設定およびデータのインポート
opts = spreadsheetImportOptions("NumVariables", 5);
% シートと範囲の指定
opts.Sheet = sheetName;
opts.DataRange = "A" + dataLines(1, 1) + ":E" + dataLines(1, 2);
% 列名と型の指定
opts.VariableNames = ["patientid", "Name", "Group", "Age", "Gender"];
opts.VariableTypes = ["double", "string", "categorical", "double", "categorical"];
% 変数プロパティを指定
opts = setvaropts(opts, "Name", "WhitespaceRule", "preserve");
opts = setvaropts(opts, ["Name", "Group", "Gender"], "EmptyFieldRule", "auto");
% データのインポート
patientsandvisits = readtable(workbookFile, opts, "UseExcel", false);
for idx = 2:size(dataLines, 1)
opts.DataRange = "A" + dataLines(idx, 1) + ":E" + dataLines(idx, 2);
tb = readtable(workbookFile, opts, "UseExcel", false);
patientsandvisits = [patientsandvisits; tb]; %#ok<AGROW>
end
end
To access the data in the column of your table, use the syntax as follows:
data = yourTable.yourColumnOfInterest;
  1 个评论
Manav Divekar
Manav Divekar 2021-11-30
what mistake i am making in my code why it is not working?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Time Series 的更多信息

标签

产品


版本

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by