我怎么将两个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) =计数器;
结束

接受的答案

dpb
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
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)
AdmittingDate AdmittingTime _________________ _________________ 2019年- 12月31日00:35 31 - 12月- 2019 01:49 2019年- 12月31日02:32 01 - 1月- 2020年14:59 01 - 1月- 2020年往后,02 - 1月- 2020年01:29 02 - 1月- 2020年10:09 02 - 1月- 2020 10:59
groupcounts (tPatients“AdmittingTime”,“小时”)
ans =24×3表
hour_AdmittingTime GroupCount 百分比 _____________ __________ _________[00:00,01:00)33 3.3[01:00,02:00)47 4.7[02:00,03:00)50 5[43 03:00内)4.3(内)凌晨5时43 4.3(4.7凌晨06:00时)47[06:00时,07:00)26日2.6[07:00,喂饲)39 3.9[喂饲,09:00)49 4.9(上午9点至10点)40 4(10、11)56 5.6[11点,12点)33 3.3[43 12:00、13:00)4.3(4.6下午14:00)46(15:00)33日14:00 3.3[下午16:00)53 5.3

登录置评。

更多的答案(0)

类别

找到更多的在循环和条件语句帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的