我怎么将两个for循环的输出保存到一个向量?
17日视图(30天)
显示旧的评论
你好,
我试图用两个for循环计算一个住院的病人的数量(从一个数据集在excel)在每一个一天24小时。我相信for循环是正确的,但我确定我如何保存输出(承认每小时)的患者数量在一个向量?
counter = 0;
为n = 0:23
为i = 1:高度(Exceldata)
如果(持续时间(n, 0, 0) < = NUM_Time_Data (i)) & (NUM_Time_Data (i) < =持续时间(n, 59岁,0))
counter = counter + 1;
结束
结束
VectorOfValues (n) =计数器;
结束
0评论
接受的答案
dpb
2023年4月25日在44
counter = 0;
VectorOfValues = 0(24日1);% preallocate
为n = 0:23
为i = 1:高度(Exceldata)
如果(持续时间(n, 0, 0) < = NUM_Time_Data (i)) & (NUM_Time_Data (i) < =持续时间(n, 59岁,0))
counter = counter + 1;
结束
结束
VectorOfValues (n + 1) =计数器;
结束
但是,“MATLAB的方法”来做这将消除循环使用
histcounts
或者,更好的是,把Excel数据到一个Matlab
表
和使用
groupsummary
时间数据变成了
datetime
或
timeofday
类。看到一般医生表和处理通过分组变量;它会是一个很大的节省时间的从长远来看比蛮力的每一个细节。
2的评论
dpb
2023年4月26日20:59
不过,这将是更好的将数据加载到一个更有用的形式分析……
tPatients =表(datetime(2020年,兰迪(12[1],1000 1),兰迪([0 23],1000 1)),…
23小时(randi([0], 1000年,1))+分钟(randi ([0 59], 1000 1)),…
“VariableNames”,{“AdmittingDate”,“AdmittingTime”});
tPatients = sortrows (tPatients, {“AdmittingDate”,“AdmittingTime”});
tPatients.AdmittingTime.Format =“hh: mm”;
头(tPatients)
groupcounts (tPatients“AdmittingTime”,“小时”)