www.gusucode.com > matlab 案例源码 matlab代码程序 > matlab/SplitTwoDataVariablesAndApplyFunctionExample.m

    %% Split Two Data Variables and Apply Function
% Calculate the variances of the differences in blood pressure readings for 
% groups of patients, and display the results. The blood pressure readings are 
% contained in two data variables. To calculate the differences, use a
% function that takes two input arguments.
%
% Load blood pressure readings and smoking data for 100 patients from the data 
% file |patients.mat|.

% Copyright 2015 The MathWorks, Inc.

load patients
whos Systolic Diastolic Smoker

%%
% Define |func| as a function that calculates the variances of the differences 
% between systolic and diastolic blood-pressure readings for smokers and nonsmokers. 
% |func| requires two input arguments.
func = @(x,y) var(x-y);

%%
% Use |findgroups| and |splitapply| to split the patient data into groups and 
% calculate the variances of the differences. |findgroups| also returns group
% identifiers in |smokers|. The |splitapply| function calls |func| once per group, 
% with |Systolic| and |Diastolic| as the two input arguments. 
[G,smokers] = findgroups(Smoker);
varBP = splitapply(func,Systolic,Diastolic,G)

%%
% Create a table that contains the variances of the differences, with the number
% of patients in each group.
numPatients = splitapply(@numel,Smoker,G);
T = table(smokers,numPatients,varBP)