متن کامل آگهی:
با سلام و وقت بخیر
صورت مساله این هست و کدش هم این هست.
داده ها را از این لینک
https://linkinghub.elsevier.com/retrieve/pii/S*******
دریافت کن و با شرایط داده شده برایم یک کد متلب برای ترسیم نقشه heatmap برحسب زمان24ساعت و تعداد باس33عدد در متلب بنویس.سه MG در یک سیستم توزیع شعاعی 33 باس قرار دارند. مجموعه ای از مشتریان به عنوان مصرف کننده یا مشتری ، به صورت CG یا PCG جمع می شوند. طوفانی رخ داده و به تغذیه کنندگان سیستم ، به شاخه های 2–19, 3–23 و 6–7 وارد کرده است. این رویداد در ساعت 17:00 رخ داده است و مدت زمان قطع 3 ساعت (17:00 تا 20:00) است.
در نهایت اینکه، نقشهheatmap مصرف کننده ها در هر ساعت برای هر باس و در بازه زمانی قطع 17:00 تا 20:00 در روز میخوام ترسیم شود،مثل شکل نقشه heatmap اول در مقاله مثلا
کد مربوط به این بخش به صورت زیر است:
clear all
clc
% Load data structure from mat file
load('dataStruct.mat');
% Define affected branches (branches 2-19, 3-23, 6-7)
branches=\[2 19; 3 23; 6 7\];
numBranches=size(branches,1);
% Convert time to hours
for i=1:length(dataStruct)
timeStr=datestr(datetime(dataStruct(i).time,'ConvertFrom','posixtime'),'HH');
timeNum=str2num(timeStr);
dataStruct(i).timeHour=timeNum+1;
end
% Grid matrix for heatmap
heatmapData=zeros(4,33);
% Define open lines (lines 8-21, 12-22, 18-33, and 25-29)
openLines=\[8 21; 12 22; 18 33; 25 29\];
% Add values from customers on open lines
for i=1:size(openLines,1)
lineBas=openLines(i,:);
lineData=dataStruct((\[dataStruct.basNum\]==lineBas(1) & \[dataStruct.mg\]==1) | (\[dataStruct.basNum\]==lineBas(2) & \[dataStruct.mg\]==2 & (\[dataStruct.mgType\]=='CG' | \[dataStruct.mgType\]=='PCG')));
for j=1:24
hourData=lineData(\[lineData.timeHour\]==j);
hourSum=sum(\[hourData.val\]);
heatmapData(j,lineBas(1))=heatmapData(j,lineBas(1))+hourSum;
heatmapData(j,lineBas(2))=heatmapData(j,lineBas(2))+hourSum;
end
end
% Sum customers for each branch and hour
for i=1:numBranches
branchBas=branches(i,:);
branchData=dataStruct(\[dataStruct.basNum\]==branchBas(1) & \[dataStruct.mg\]==2 & (\[dataStruct.mgType
=='CG' | \[dataStruct.mgType\]=='PCG'));
branchHeatmapData=accumarray(\[branchData.timeHour-16\],branchData.val,\[\],\[\],0)';
heatmapData(:,branchBas(2))=branchHeatmapData;
end
% Plot heatmap
figure;
heatmap(heatmapData,'Colormap',redbluecmap,'XDisplayLabels',{'B1','B2','B3','B4','B5','B6','B7','B8','B9','B10','B11','B12','B13','B14','B15','B16','B17','B18','B19','B20','B21','B22','B23','B24','B25','B26','B27','B28','B29','B30','B31','B32','B33'},'YDisplayLabels',{'17:00','18:00','19:00','20:00'},'ColorbarVisible','on','ColorLimits',\[0 100\],'GridVisible','off');
title('Customer Consumption Heatmap from 17:00 to 20:00');
xlabel('Bus Number');
ylabel('Time (24-Hour Format)');