Month: July 2025
The export of MATLAB graphics may not be suitable for high-resolution screens
When I export an existing fig graph, its size does not match the content within the display interface.
Initially I found there is an error in HiDPI adaption.
My coumputer’s screen is in 200% scale. When I export the figure, the size seems to be double itself. As I halving the lenght or the width, it become normal.When I export an existing fig graph, its size does not match the content within the display interface.
Initially I found there is an error in HiDPI adaption.
My coumputer’s screen is in 200% scale. When I export the figure, the size seems to be double itself. As I halving the lenght or the width, it become normal. When I export an existing fig graph, its size does not match the content within the display interface.
Initially I found there is an error in HiDPI adaption.
My coumputer’s screen is in 200% scale. When I export the figure, the size seems to be double itself. As I halving the lenght or the width, it become normal. figure, export MATLAB Answers — New Questions
Issue with contourfm from Matlab 2024b
Hello,
I have to plot some data over these coordinates:
Until Matlab 2024a release I was able to correctly do it with contourfm through the code line:
contourfm(latPlot,lonPlot,data,CXanom(lp,1):0.125:CXanom(lp,2),’LineStyle’,’none’);
From Matlab 2024b release, lat and lon are not accepted anymore and there is the need to create reference raster cells. Here the code for Matlab 2024b:
ax=worldmap([min(latPlot(:)),max(latPlot(:))],[min(lonPlot(:)),max(lonPlot(:))]);
RefCells=georefcells([min(latPlot(:)),max(latPlot(:))],[min(lonPlot(:)),max(lonPlot(:))],[size(latPlot)]);
contourfm(data,RefCells,CXanom(lp,1):0.125:CXanom(lp,2),’LineStyle’,’none’);
hold on;
[C,h]=contourm(data,RefCells,CXanom(lp,1):StepLineAnom:CXanom(lp,2),’k’);
if isempty(C)
continue;
else
clm=clabelm(C,h,CXanom(lp,1):StepLineAnom:CXanom(lp,2));
for kk=1:numel(clm)
clm(kk).BackgroundColor=’none’;
clm(kk).FontWeight=’bold’;
clm(kk).Color=’k’;
end
for kk=1:numel(h.Children)
h.Children(kk).LineStyle=’:’;
end
end
plotm(BordersWorldHR(:,2),BordersWorldHR(:,1),’k’);
p=plotm(LatCC,LonCC,’xw’);
p.MarkerSize=8;
p.LineWidth=2;
p.MarkerEdgeColor=[0.96,0.96,0.96];
p.MarkerFaceColor=[0.96,0.96,0.96];
setm(ax,’FontSize’,10);
colormap(turbo);
hc=colorbar;
ylabel(hc,[‘TB Anomaly ‘,AMSUA_ch{ch},’ GHz (K)’]);
hc.FontSize=9;
hc.Ticks=CXanom(lp,1):(CXanom(lp,2)-CXanom(lp,1))/size(CMP1.(FN1),1):CXanom(lp,2);
hc.TickLabels=num2str(hc.Ticks’,’%.1f’);
clim(CXanom(lp,:));
hl=legend(p,’Min MSLP’);
hl.Location=’NorthWest’;
hl.FontSize=8;
hl.Color=[0.82,0.82,0.82];
set(gcf,’InvertHardCopy’,’off’);
What I get is the following:
but what I have to get is the following (made with pcolorm):
Can anyone help me to fix this issue? I attach both the data and the figures. Thanks.Hello,
I have to plot some data over these coordinates:
Until Matlab 2024a release I was able to correctly do it with contourfm through the code line:
contourfm(latPlot,lonPlot,data,CXanom(lp,1):0.125:CXanom(lp,2),’LineStyle’,’none’);
From Matlab 2024b release, lat and lon are not accepted anymore and there is the need to create reference raster cells. Here the code for Matlab 2024b:
ax=worldmap([min(latPlot(:)),max(latPlot(:))],[min(lonPlot(:)),max(lonPlot(:))]);
RefCells=georefcells([min(latPlot(:)),max(latPlot(:))],[min(lonPlot(:)),max(lonPlot(:))],[size(latPlot)]);
contourfm(data,RefCells,CXanom(lp,1):0.125:CXanom(lp,2),’LineStyle’,’none’);
hold on;
[C,h]=contourm(data,RefCells,CXanom(lp,1):StepLineAnom:CXanom(lp,2),’k’);
if isempty(C)
continue;
else
clm=clabelm(C,h,CXanom(lp,1):StepLineAnom:CXanom(lp,2));
for kk=1:numel(clm)
clm(kk).BackgroundColor=’none’;
clm(kk).FontWeight=’bold’;
clm(kk).Color=’k’;
end
for kk=1:numel(h.Children)
h.Children(kk).LineStyle=’:’;
end
end
plotm(BordersWorldHR(:,2),BordersWorldHR(:,1),’k’);
p=plotm(LatCC,LonCC,’xw’);
p.MarkerSize=8;
p.LineWidth=2;
p.MarkerEdgeColor=[0.96,0.96,0.96];
p.MarkerFaceColor=[0.96,0.96,0.96];
setm(ax,’FontSize’,10);
colormap(turbo);
hc=colorbar;
ylabel(hc,[‘TB Anomaly ‘,AMSUA_ch{ch},’ GHz (K)’]);
hc.FontSize=9;
hc.Ticks=CXanom(lp,1):(CXanom(lp,2)-CXanom(lp,1))/size(CMP1.(FN1),1):CXanom(lp,2);
hc.TickLabels=num2str(hc.Ticks’,’%.1f’);
clim(CXanom(lp,:));
hl=legend(p,’Min MSLP’);
hl.Location=’NorthWest’;
hl.FontSize=8;
hl.Color=[0.82,0.82,0.82];
set(gcf,’InvertHardCopy’,’off’);
What I get is the following:
but what I have to get is the following (made with pcolorm):
Can anyone help me to fix this issue? I attach both the data and the figures. Thanks. Hello,
I have to plot some data over these coordinates:
Until Matlab 2024a release I was able to correctly do it with contourfm through the code line:
contourfm(latPlot,lonPlot,data,CXanom(lp,1):0.125:CXanom(lp,2),’LineStyle’,’none’);
From Matlab 2024b release, lat and lon are not accepted anymore and there is the need to create reference raster cells. Here the code for Matlab 2024b:
ax=worldmap([min(latPlot(:)),max(latPlot(:))],[min(lonPlot(:)),max(lonPlot(:))]);
RefCells=georefcells([min(latPlot(:)),max(latPlot(:))],[min(lonPlot(:)),max(lonPlot(:))],[size(latPlot)]);
contourfm(data,RefCells,CXanom(lp,1):0.125:CXanom(lp,2),’LineStyle’,’none’);
hold on;
[C,h]=contourm(data,RefCells,CXanom(lp,1):StepLineAnom:CXanom(lp,2),’k’);
if isempty(C)
continue;
else
clm=clabelm(C,h,CXanom(lp,1):StepLineAnom:CXanom(lp,2));
for kk=1:numel(clm)
clm(kk).BackgroundColor=’none’;
clm(kk).FontWeight=’bold’;
clm(kk).Color=’k’;
end
for kk=1:numel(h.Children)
h.Children(kk).LineStyle=’:’;
end
end
plotm(BordersWorldHR(:,2),BordersWorldHR(:,1),’k’);
p=plotm(LatCC,LonCC,’xw’);
p.MarkerSize=8;
p.LineWidth=2;
p.MarkerEdgeColor=[0.96,0.96,0.96];
p.MarkerFaceColor=[0.96,0.96,0.96];
setm(ax,’FontSize’,10);
colormap(turbo);
hc=colorbar;
ylabel(hc,[‘TB Anomaly ‘,AMSUA_ch{ch},’ GHz (K)’]);
hc.FontSize=9;
hc.Ticks=CXanom(lp,1):(CXanom(lp,2)-CXanom(lp,1))/size(CMP1.(FN1),1):CXanom(lp,2);
hc.TickLabels=num2str(hc.Ticks’,’%.1f’);
clim(CXanom(lp,:));
hl=legend(p,’Min MSLP’);
hl.Location=’NorthWest’;
hl.FontSize=8;
hl.Color=[0.82,0.82,0.82];
set(gcf,’InvertHardCopy’,’off’);
What I get is the following:
but what I have to get is the following (made with pcolorm):
Can anyone help me to fix this issue? I attach both the data and the figures. Thanks. contourfm MATLAB Answers — New Questions
N310 Target Platform not appearing in HDL Coder
I have been trying to follow the NI Targeting Workflow for IP Core generation for an USRP N310 SDR. I have installed Vivado and appended it to the system path, and have been successful in connecting with the SDR using the radioSetupWizard. In Simulink, using the SDRu Reciever block, I am successfully able to read data from the Rx channels of the radio, so there is no issue with the connectivity here.
However, when I try to use the HDL coder, it seems that the radio is not recognised. I can load the default fpga using sdruload, so I assume it’s not that I can’t access the fpga, but I cannot see it, nor any other NI radio (other than the E310 which appeared after running setupusrpe3xxrepositories;) as a target platform for the HDL coder.
I would expect to see this listed as USRP N310 as in the example, but it does not appear. I have tried uninstalling and reinstalling everything, so I am at a loss of how to proceed. Any help would be greatly appreciated.I have been trying to follow the NI Targeting Workflow for IP Core generation for an USRP N310 SDR. I have installed Vivado and appended it to the system path, and have been successful in connecting with the SDR using the radioSetupWizard. In Simulink, using the SDRu Reciever block, I am successfully able to read data from the Rx channels of the radio, so there is no issue with the connectivity here.
However, when I try to use the HDL coder, it seems that the radio is not recognised. I can load the default fpga using sdruload, so I assume it’s not that I can’t access the fpga, but I cannot see it, nor any other NI radio (other than the E310 which appeared after running setupusrpe3xxrepositories;) as a target platform for the HDL coder.
I would expect to see this listed as USRP N310 as in the example, but it does not appear. I have tried uninstalling and reinstalling everything, so I am at a loss of how to proceed. Any help would be greatly appreciated. I have been trying to follow the NI Targeting Workflow for IP Core generation for an USRP N310 SDR. I have installed Vivado and appended it to the system path, and have been successful in connecting with the SDR using the radioSetupWizard. In Simulink, using the SDRu Reciever block, I am successfully able to read data from the Rx channels of the radio, so there is no issue with the connectivity here.
However, when I try to use the HDL coder, it seems that the radio is not recognised. I can load the default fpga using sdruload, so I assume it’s not that I can’t access the fpga, but I cannot see it, nor any other NI radio (other than the E310 which appeared after running setupusrpe3xxrepositories;) as a target platform for the HDL coder.
I would expect to see this listed as USRP N310 as in the example, but it does not appear. I have tried uninstalling and reinstalling everything, so I am at a loss of how to proceed. Any help would be greatly appreciated. code generation, usrp, ip-core generation MATLAB Answers — New Questions
Microsoft Introduces Exchange 2016/2019 Extended Security Program
Six Months of an Extended Security Update Program from October 2025 to April 2026

Those who aren’t dedicated followers of the EHLO blog might have missed two interesting posts this week. The first covers delicensing resiliency for Exchange Online and the news that Microsoft is reducing the threshold for this feature to 5,000 tenant mailboxes. I think the feature should be available to all Exchange Online tenants, but let’s leave that debate aside.
Coping with the consequences of a mailbox becoming delicensed isn’t such an issue for Exchange on-premises organizations. They have their own challenge, notably the need to upgrade to Exchange Server Subscription Edition (SE) before Exchange 2016 and Exchange 2019 exit support on October 14, 2025.
Updating a Server to Exchange Server SE is Boringly Easy
The second EHLO post of the week offers a lifeline to organizations who don’t believe that they can deploy Exchange Server SE by the October 2025 deadline. Performing an in-place server upgrade to Exchange Server SE is the easiest Exchange upgrade an on-premises administrator is likely to ever know. It’s been described as “boring” because literally nothing happens apart from version numbers being updated and a few other minor tweaks. The fact that Exchange 2019 and SE share the same documentation for system requirements testifies to the closeness of the two products.
Microsoft designed the upgrade to the first iteration of Exchange Server SE to be boring to remove the barrier where administrators believe that an Exchange upgrade is a major event with many potential problems lurking under the surface waiting to make a server inoperative. Read the documentation, follow the steps laid down, and your update will proceed smoothly.
Factors Stopping Upgrades Happening
Although the server upgrade is easy, there’s usually some other factors that come into play that can slow deployment. Now is peak vacation period so people might not be available. The organization might decide to introduce new hardware or roll out Windows Server 2025. This might be especially so when the organization runs Exchange 2016 on an older version of Windows Server (here’s the operating systems matrix). In any case, lots of preliminary steps might need to be resolved before anyone sits down to update a server.
To help organizations that are struggling to get their ducks in a row to allow the deployment of Exchange Server SE to proceed, Microsoft is therefore introducing a six-month Extended Security Update program. The idea is simple: After August 1, 2025, customers can contact their Microsoft account team to request a subscription to a new product SKU that entitles them to receive security updates for Exchange 2016 and Exchange 2019 for six months. The price of the SKU is per-server, and it’s assumed that the Microsoft account team knows how many servers a customer operates so that they can calculate an initial price before any discounts are negotiated. If you don’t have a Microsoft account team, call the local Microsoft office and get them involved.
There are several important points to consider before proceeding to enrol in the Extended Security Program:
- The agreement only lasts six months and Microsoft doesn’t plan to extend it past April 14, 2026.
- During the agreement, Microsoft will deliver security updates for problems that the Microsoft Security Response Center deems to be critical or important. In other words, a security issue must meet a threshold before Microsoft will create a security update for Exchange 2016/2019.
- Security updates issued through the program will be released privately to program participants. You won’t be able to download the updates from the Microsoft download center.
- There’s no guarantee that any security problems will emerge between October 15, 2025, and April 14, 2026. In other words, this is insurance in case a problem happens, and no refunds are coming if the security landscape remains calm throughout the six-month program lifetime.
- Microsoft says that they will inform program participants if a security update is available on Patch Tuesdays during the covered period.
- The Extended Security Update Program does not affect the end-of-lifetime support dates for Exchange 2016 and Exchange 2019. Those dates remain as they are. This program only covers security issues.
Not a Revenue Generating Opportunity
Cynics will say that this is yet another example of Microsoft adjusting deadlines, this time to create an opportunity for a little extra revenue by charging customers for six months of security insurance. Pragmatists will recognize just how slow Exchange Server updates have been since Exchange 2000 appeared. Given the engineering costs involved, I doubt Microsoft will make much if anything from the Extended Security Update program. This is no more and no less than a lifeline for those who need that extra time.
Your support pays for the time we need to track, analyze, and document the changing world of Microsoft 365 and Office 365. Only humans contribute to our work, which includes topics like Exchange Server SE that are important to hybrid Microsoft 365 deployments.
Output doesn’t display a value, just an empty space.
So, I’ve got 2 pulses (imp and S0) and their sum (Si). I’ve got to find minimum of sum (Si). And I approximate the sum with a polynome. I took derivatives (1-st and 2-nd order) of the sum and polynome.
I analyze derivatives, and decided to look for minimum of sum (Si), polynome and 2-nd derivatives.
But, in some cases the result is just empty, but size of variable is 1×999 double.
lb = -5;
ub = 15;
x_imp = linspace(lb, ub, 1001);
x = linspace(lb, ub, 1001);
imp = sech(x_imp);
S0 = sech(x-10);
imp1 = sech(x – 1);
S1 = 0.5 * (imp1 + S0);
xmin = -1;
xmax = 10;
% find inflection point Si
range_x = x(x>=xmin & x<=xmax);
range_S1 = S1(x>=xmin & x<=xmax);
MinPtsS1 = islocalmin(range_S1);
fprintf (‘x_S1 = %f , y_S1 = %f .n’, range_x(MinPtsS1), range_S1(MinPtsS1));
% polynom approximation pv
[p_S1, ~, mu] = polyfit(x, S1, 26);
pv_S1 = polyval (p_S1, x, [], mu);
% find inflection point of polynom pv
range_x = x(x>=xmin & x<=xmax);
range_pvS1 = pv_S1(x>=xmin & x<=xmax);
MinPts_pvS1 = islocalmin(range_pvS1);
fprintf(‘x_pvS1 = %f , y_pvS1 = %f .n’, range_x(MinPts_pvS1), range_pvS1(MinPts_pvS1));
% DIFF find inflection of diff2 Si, corresponding to inflection point of Si
dS1 = 20*diff (S1);
d2S1 = 10*diff(dS1);
range_x = x(x>=xmin & x<=xmin);
range_d2S1 = d2S1(x>=xmin & x<=xmin);
MinPts_d2S1 = islocalmin(range_d2S1);
fprintf(‘x_d2S1 = %f , y_d2S1 = %f .n’, range_x(MinPts_d2S1), range_d2S1(MinPts_d2S1));
% DIFF find inflection of diff2 polynom Si, corresponding to inflection point of Si
dpS1 = 20*diff(pv_S1);
dp2S1 = 20*diff(dpS1);
range_x = x(x>=xmin & x<=xmax);
range_dp2S1 = dp2S1(x>=xmin & x<=xmax);
MinPts_dp2S1 = islocalmin(range_dp2S1);
fprintf(‘x_dp2S1 = %f , y_dp2S1 = %f .n’, range_x(MinPts_dp2S1), range_dp2S1(MinPts_dp2S1));So, I’ve got 2 pulses (imp and S0) and their sum (Si). I’ve got to find minimum of sum (Si). And I approximate the sum with a polynome. I took derivatives (1-st and 2-nd order) of the sum and polynome.
I analyze derivatives, and decided to look for minimum of sum (Si), polynome and 2-nd derivatives.
But, in some cases the result is just empty, but size of variable is 1×999 double.
lb = -5;
ub = 15;
x_imp = linspace(lb, ub, 1001);
x = linspace(lb, ub, 1001);
imp = sech(x_imp);
S0 = sech(x-10);
imp1 = sech(x – 1);
S1 = 0.5 * (imp1 + S0);
xmin = -1;
xmax = 10;
% find inflection point Si
range_x = x(x>=xmin & x<=xmax);
range_S1 = S1(x>=xmin & x<=xmax);
MinPtsS1 = islocalmin(range_S1);
fprintf (‘x_S1 = %f , y_S1 = %f .n’, range_x(MinPtsS1), range_S1(MinPtsS1));
% polynom approximation pv
[p_S1, ~, mu] = polyfit(x, S1, 26);
pv_S1 = polyval (p_S1, x, [], mu);
% find inflection point of polynom pv
range_x = x(x>=xmin & x<=xmax);
range_pvS1 = pv_S1(x>=xmin & x<=xmax);
MinPts_pvS1 = islocalmin(range_pvS1);
fprintf(‘x_pvS1 = %f , y_pvS1 = %f .n’, range_x(MinPts_pvS1), range_pvS1(MinPts_pvS1));
% DIFF find inflection of diff2 Si, corresponding to inflection point of Si
dS1 = 20*diff (S1);
d2S1 = 10*diff(dS1);
range_x = x(x>=xmin & x<=xmin);
range_d2S1 = d2S1(x>=xmin & x<=xmin);
MinPts_d2S1 = islocalmin(range_d2S1);
fprintf(‘x_d2S1 = %f , y_d2S1 = %f .n’, range_x(MinPts_d2S1), range_d2S1(MinPts_d2S1));
% DIFF find inflection of diff2 polynom Si, corresponding to inflection point of Si
dpS1 = 20*diff(pv_S1);
dp2S1 = 20*diff(dpS1);
range_x = x(x>=xmin & x<=xmax);
range_dp2S1 = dp2S1(x>=xmin & x<=xmax);
MinPts_dp2S1 = islocalmin(range_dp2S1);
fprintf(‘x_dp2S1 = %f , y_dp2S1 = %f .n’, range_x(MinPts_dp2S1), range_dp2S1(MinPts_dp2S1)); So, I’ve got 2 pulses (imp and S0) and their sum (Si). I’ve got to find minimum of sum (Si). And I approximate the sum with a polynome. I took derivatives (1-st and 2-nd order) of the sum and polynome.
I analyze derivatives, and decided to look for minimum of sum (Si), polynome and 2-nd derivatives.
But, in some cases the result is just empty, but size of variable is 1×999 double.
lb = -5;
ub = 15;
x_imp = linspace(lb, ub, 1001);
x = linspace(lb, ub, 1001);
imp = sech(x_imp);
S0 = sech(x-10);
imp1 = sech(x – 1);
S1 = 0.5 * (imp1 + S0);
xmin = -1;
xmax = 10;
% find inflection point Si
range_x = x(x>=xmin & x<=xmax);
range_S1 = S1(x>=xmin & x<=xmax);
MinPtsS1 = islocalmin(range_S1);
fprintf (‘x_S1 = %f , y_S1 = %f .n’, range_x(MinPtsS1), range_S1(MinPtsS1));
% polynom approximation pv
[p_S1, ~, mu] = polyfit(x, S1, 26);
pv_S1 = polyval (p_S1, x, [], mu);
% find inflection point of polynom pv
range_x = x(x>=xmin & x<=xmax);
range_pvS1 = pv_S1(x>=xmin & x<=xmax);
MinPts_pvS1 = islocalmin(range_pvS1);
fprintf(‘x_pvS1 = %f , y_pvS1 = %f .n’, range_x(MinPts_pvS1), range_pvS1(MinPts_pvS1));
% DIFF find inflection of diff2 Si, corresponding to inflection point of Si
dS1 = 20*diff (S1);
d2S1 = 10*diff(dS1);
range_x = x(x>=xmin & x<=xmin);
range_d2S1 = d2S1(x>=xmin & x<=xmin);
MinPts_d2S1 = islocalmin(range_d2S1);
fprintf(‘x_d2S1 = %f , y_d2S1 = %f .n’, range_x(MinPts_d2S1), range_d2S1(MinPts_d2S1));
% DIFF find inflection of diff2 polynom Si, corresponding to inflection point of Si
dpS1 = 20*diff(pv_S1);
dp2S1 = 20*diff(dpS1);
range_x = x(x>=xmin & x<=xmax);
range_dp2S1 = dp2S1(x>=xmin & x<=xmax);
MinPts_dp2S1 = islocalmin(range_dp2S1);
fprintf(‘x_dp2S1 = %f , y_dp2S1 = %f .n’, range_x(MinPts_dp2S1), range_dp2S1(MinPts_dp2S1)); empty output, derivative, diff, polyval MATLAB Answers — New Questions
compute the inverse sine of the sine of 45 degrees and assign the answer in radians to a variable named a.
Where am I going wrong?Where am I going wrong? Where am I going wrong? inverse sine of the sine MATLAB Answers — New Questions
How to output STL format flie
I have a point matrix p whose size is 3×98065;the triangulation matrix t whose size is 3×196124 ;
How to output the data as a STL model.Thank you.I have a point matrix p whose size is 3×98065;the triangulation matrix t whose size is 3×196124 ;
How to output the data as a STL model.Thank you. I have a point matrix p whose size is 3×98065;the triangulation matrix t whose size is 3×196124 ;
How to output the data as a STL model.Thank you. output stl format flie, triangulation matrix, point matrix, export stl, write stl MATLAB Answers — New Questions
Tasks not appearing in task box during Simulink Onramp Desktop
Hello,
I have recently tried to do the Simulink Onramp through my desktop. The tasks are not appearing in the task region. Please see the image below.
As you can see, there are no tasks appearing where they should, pressing next does not make the next task appear.Hello,
I have recently tried to do the Simulink Onramp through my desktop. The tasks are not appearing in the task region. Please see the image below.
As you can see, there are no tasks appearing where they should, pressing next does not make the next task appear. Hello,
I have recently tried to do the Simulink Onramp through my desktop. The tasks are not appearing in the task region. Please see the image below.
As you can see, there are no tasks appearing where they should, pressing next does not make the next task appear. onramp, bug MATLAB Answers — New Questions
How can i use ltpda startup nowadays? I think in old version of matlab work but in 2023 it shows , it cant recognize, is there any solutions or options?
i want to use ltpda and then plist. But if i use it as ‘ltpda_startup’ , matlab cant recognize it and after that ‘plist’. In 2016 and 2017 version of matlab it worked. How can i fix it in 2023 version or is there any alternative solutions for it?i want to use ltpda and then plist. But if i use it as ‘ltpda_startup’ , matlab cant recognize it and after that ‘plist’. In 2016 and 2017 version of matlab it worked. How can i fix it in 2023 version or is there any alternative solutions for it? i want to use ltpda and then plist. But if i use it as ‘ltpda_startup’ , matlab cant recognize it and after that ‘plist’. In 2016 and 2017 version of matlab it worked. How can i fix it in 2023 version or is there any alternative solutions for it? image processing, ltpda MATLAB Answers — New Questions
Exchange Online Reduces Delicensing Resiliency Threshold to 5,000 Mailboxes
Delicensing Resiliency Protects Against Data Loss – Should Be Available to All

According to an EHLO July 15 post, Microsoft has decided to reduce the threshold for delicensing resiliency from the original level of 10,000 mailboxes announced in November 2024 to 5,000. In other words, the feature to protect against inadvertent data loss due to mailboxes becoming unlicensed is only available for tenants with more than 5,000 mailboxes.
I think the feature should be available to all Exchange Online tenants. Apart from some notional accounting savings accrued by removing unlicensed mailboxes from tenants without a 30-day grace period, Microsoft has no good justification for restricting delicensing resiliency to large tenants. Here’s why.
A Sticking Plaster for Group-Based Licensing
First, delicensing resiliency is a sticking plaster fix to a problem in Microsoft group-based licensing that can cause an account to end up in a situation where it has no license that includes an Exchange Online service plan. When this happens, Exchange Online detects the unlicensed state of the mailbox and disconnects the mailbox to make it inaccessible. The grace period granted through delicensing resiliency allows administrators the time to recognize and correct license allocation mistakes.
The problem was more evident before Exchange Online supported license stacking (the ability for an account to have several licenses with Exchange Online service plans). Stacking allows a mailbox to remain licensed even when an Exchange license is removed from an account. But group-based licensing can become complex when multiple groups are used to assign licenses, including dynamic groups. A change to someone’s membership of a group (or a change to a property that includes them in a dynamic membership) can result in license removal and hence a mailbox disconnection.
It would be better if Microsoft sorted out group-based licensing to remove the possibility of accounts becoming unlicensed. Perhaps the Microsoft 365 admin center, which took responsibility from Entra ID for the management UX for group-based licensing in 2024, could develop a “what if” feature to show administrators what will happen if a change is made to a group and warn against removal of access to critical apps like Teams and Exchange. And in the interim, Exchange Online could make delicensing resiliency available to all tenants.
OneDrive for Business is the Other Major User Personal Storage
It’s not as if such a step would be something new and dramatic. The default retention period for OneDrive for Business accounts belonging to deleted user accounts is 30 days, and that period can be extended to allow nominated individuals to check OneDrive to harvest essential business information. OneDrive and mailboxes are the two primary personal storage locations within Microsoft 365. A similar level of access to the two types of objects should be possible following license removal (often because of account deletion).
Use Retention to Make Unlicensed Mailboxes into Inactive Mailboxes
Another reason for extending delicensing resilience to all tenants is that “big” tenants usually can protect against inadvertent deletion by putting a retention or litigation hold (or holds) on mailboxes to ensure that Exchange Online puts deleted mailboxes into an inactive state. This is another good way to ensure that mailboxes remain available even if a deletion in error occurs. Inactive mailboxes are available to any size of tenant that can set retention holds and there’s no arbitrary number of mailboxes that must be met.
Delicensing resiliency is easier for tenants to use than inactive mailboxes are because the mailboxes remain online and connected. Inactive mailboxes need to be reconnected through administrator intervention. That might have an advantage because the administrator might then understand that a problem exists in how the tenant manages licenses.
All We Need is Simplicity and Consistency
Although there is goodness in building features that protect against data loss, it would be even better if Microsoft was consistent in its policies and practices for controlling user data across the entire Microsoft 365 suite. We’re 14 years into the Office 365 era and while great progress has been made in some area to achieve consistency across workloads, gaps still exist. Blaming the roots of on-premises products is not acceptable any longer. Joined-up thinking is needed, and that doesn’t appear to be the case here.
In the interim, if your tenant has more than 5,000 mailboxes, update your organization configuration to enable Delicensing Resliency using the following command:
Set-OrganizationConfig -DelayedDelicensingEnabled:$true
Support the work of the Office 365 for IT Pros team by subscribing to the Office 365 for IT Pros eBook. Your support pays for the time we need to track, analyze, and document the changing world of Microsoft 365 and Office 365. Only humans contribute to our work!
How to convert color map into contour map?
I have a file of color map with known boundary coordinates and color bar scale either horizontal or vertical. How can we transform the color map into contour map, such that the value of contours expressed the same in the color bar values?I have a file of color map with known boundary coordinates and color bar scale either horizontal or vertical. How can we transform the color map into contour map, such that the value of contours expressed the same in the color bar values? I have a file of color map with known boundary coordinates and color bar scale either horizontal or vertical. How can we transform the color map into contour map, such that the value of contours expressed the same in the color bar values? colormap, contour map MATLAB Answers — New Questions
i need a simulink matlab model for transformer inrush current .
i need a matlab simulink model for 3 phase transformer which is at no – load. now when it is energized initially, it should take an inrush current in primary side of transformer.i need a matlab simulink model for 3 phase transformer which is at no – load. now when it is energized initially, it should take an inrush current in primary side of transformer. i need a matlab simulink model for 3 phase transformer which is at no – load. now when it is energized initially, it should take an inrush current in primary side of transformer. 3 phase transformer, inrush current MATLAB Answers — New Questions
i am trying to read excel file from D drive under name mirror1 to put values in app.EditData.Value it gives parse error.thanks alot
excelfilepath= ‘D:mirror1.xlsx’;
data =readtable(excelfilepath);
value=data{1,1};
app.EditField.Value = num2str(value);
end
what is wrong with code
it gives parse erorr
thanksexcelfilepath= ‘D:mirror1.xlsx’;
data =readtable(excelfilepath);
value=data{1,1};
app.EditField.Value = num2str(value);
end
what is wrong with code
it gives parse erorr
thanks excelfilepath= ‘D:mirror1.xlsx’;
data =readtable(excelfilepath);
value=data{1,1};
app.EditField.Value = num2str(value);
end
what is wrong with code
it gives parse erorr
thanks app designer, excel MATLAB Answers — New Questions
Interactively show polygon label on choropleth map
I need to map a polygon shapefile in a choropleth map and interactively show the name of the specific polygon on which I click with the mouse. The default data tool tip does not work for me because: (1) information gets displayed for each polygon vertex, while I need the information only when clicking in the inner part of the polygon; (2) apparently, the only information it can show are coordinates.
To give an idea of what I am after, I produce hereby a minimum working example. In the last line of this example, I add all polygon names via the text command, associating each polygon to a unique inner point. This determines the placement of the text. What I need, instead, is for such text to be displayed only for the single polygon on which I click with the mouse.
Any help would be greatly appreciated.
% Minimum working example
% pgn = shaperead(‘pgn.shp’);
% pts = shaperead(‘pts.shp’);
load(‘pgn.mat’)
load(‘pts.mat’)
colorgradient = parula(height(pgn));
cbarlim = [floor(min([pgn.MA1911])) ceil(max([pgn.MA1911]))];
symbpgn = makesymbolspec(‘Polygon’, …
{‘MA1911’, cbarlim, ‘FaceColor’, colorgradient});
mapshow(pgn,’SymbolSpec’,symbpgn);
disableDefaultInteractivity(gca) % This prevents polygon vertex coordinates from showing in the tooltip
ax = gca;
ax.CLim = cbarlim;
h = colorbar;
h.Label.String = ‘people’;
axis equal
axis off
hold on
text([pts.X]’,[pts.Y]’,{pts.UNIT}’) % This is what needs to become interactiveI need to map a polygon shapefile in a choropleth map and interactively show the name of the specific polygon on which I click with the mouse. The default data tool tip does not work for me because: (1) information gets displayed for each polygon vertex, while I need the information only when clicking in the inner part of the polygon; (2) apparently, the only information it can show are coordinates.
To give an idea of what I am after, I produce hereby a minimum working example. In the last line of this example, I add all polygon names via the text command, associating each polygon to a unique inner point. This determines the placement of the text. What I need, instead, is for such text to be displayed only for the single polygon on which I click with the mouse.
Any help would be greatly appreciated.
% Minimum working example
% pgn = shaperead(‘pgn.shp’);
% pts = shaperead(‘pts.shp’);
load(‘pgn.mat’)
load(‘pts.mat’)
colorgradient = parula(height(pgn));
cbarlim = [floor(min([pgn.MA1911])) ceil(max([pgn.MA1911]))];
symbpgn = makesymbolspec(‘Polygon’, …
{‘MA1911’, cbarlim, ‘FaceColor’, colorgradient});
mapshow(pgn,’SymbolSpec’,symbpgn);
disableDefaultInteractivity(gca) % This prevents polygon vertex coordinates from showing in the tooltip
ax = gca;
ax.CLim = cbarlim;
h = colorbar;
h.Label.String = ‘people’;
axis equal
axis off
hold on
text([pts.X]’,[pts.Y]’,{pts.UNIT}’) % This is what needs to become interactive I need to map a polygon shapefile in a choropleth map and interactively show the name of the specific polygon on which I click with the mouse. The default data tool tip does not work for me because: (1) information gets displayed for each polygon vertex, while I need the information only when clicking in the inner part of the polygon; (2) apparently, the only information it can show are coordinates.
To give an idea of what I am after, I produce hereby a minimum working example. In the last line of this example, I add all polygon names via the text command, associating each polygon to a unique inner point. This determines the placement of the text. What I need, instead, is for such text to be displayed only for the single polygon on which I click with the mouse.
Any help would be greatly appreciated.
% Minimum working example
% pgn = shaperead(‘pgn.shp’);
% pts = shaperead(‘pts.shp’);
load(‘pgn.mat’)
load(‘pts.mat’)
colorgradient = parula(height(pgn));
cbarlim = [floor(min([pgn.MA1911])) ceil(max([pgn.MA1911]))];
symbpgn = makesymbolspec(‘Polygon’, …
{‘MA1911’, cbarlim, ‘FaceColor’, colorgradient});
mapshow(pgn,’SymbolSpec’,symbpgn);
disableDefaultInteractivity(gca) % This prevents polygon vertex coordinates from showing in the tooltip
ax = gca;
ax.CLim = cbarlim;
h = colorbar;
h.Label.String = ‘people’;
axis equal
axis off
hold on
text([pts.X]’,[pts.Y]’,{pts.UNIT}’) % This is what needs to become interactive mapshow, tooltip MATLAB Answers — New Questions
I am trying to generate a plot for the 3x+1 problem for the seed 10^310 but i am unable to get the plot? Why
% Code for 3x+1 Problem
seed = 10^309; % Starting number
x = seed; % Initialize x with the seed
trajectory = x; % Store the trajectory
tic
while x ~= 1
if mod(x, 2) == 0 % Check if x is even
x = x / 2;
else % If x is odd
x = 3 * x + 1;
end
trajectory = [trajectory, x]; % Append x to trajectory
end
toc
% Plot the trajectory
figure;
plot(trajectory, ‘-o’, ‘LineWidth’, 1, ‘MarkerSize’, 5,’MarkerFaceColor’, ‘r’);
title(‘Plot of the Collatz Sequence for positive Seed 10^310’);
xlabel(‘Step’);
ylabel(‘Value’);
grid on;% Code for 3x+1 Problem
seed = 10^309; % Starting number
x = seed; % Initialize x with the seed
trajectory = x; % Store the trajectory
tic
while x ~= 1
if mod(x, 2) == 0 % Check if x is even
x = x / 2;
else % If x is odd
x = 3 * x + 1;
end
trajectory = [trajectory, x]; % Append x to trajectory
end
toc
% Plot the trajectory
figure;
plot(trajectory, ‘-o’, ‘LineWidth’, 1, ‘MarkerSize’, 5,’MarkerFaceColor’, ‘r’);
title(‘Plot of the Collatz Sequence for positive Seed 10^310’);
xlabel(‘Step’);
ylabel(‘Value’);
grid on; % Code for 3x+1 Problem
seed = 10^309; % Starting number
x = seed; % Initialize x with the seed
trajectory = x; % Store the trajectory
tic
while x ~= 1
if mod(x, 2) == 0 % Check if x is even
x = x / 2;
else % If x is odd
x = 3 * x + 1;
end
trajectory = [trajectory, x]; % Append x to trajectory
end
toc
% Plot the trajectory
figure;
plot(trajectory, ‘-o’, ‘LineWidth’, 1, ‘MarkerSize’, 5,’MarkerFaceColor’, ‘r’);
title(‘Plot of the Collatz Sequence for positive Seed 10^310’);
xlabel(‘Step’);
ylabel(‘Value’);
grid on; collatz conjecture, 3x +1 problem MATLAB Answers — New Questions
Copilot Studio Agent Vulnerability to Prompt Injection
Copilot Studio Agent Sends Salesforce Customer Data to Attacker
The July 7 report (“A Copilot Studio Story 2: When AIjacking Leads to Full Data Exfiltration“) from Zenity Labs is sobering reading for anyone considering how to introduce Copilot agents within a Microsoft 365 tenant. In a nutshell, Zenity created a replica of a “flagship example” of an agent created using Copilot Studio built by McKinsey & Co and proved that a an email containing a prompt injection sent to the agent could result in the generation of an emailed response containing customer data sent back to an attacker.
I have an instinctive suspicious of reports issued by security researchers because there are too many examples of overhyped text designed purely to enhance the credentials of the company. In this instance, the Microsoft Security Response Center took the issue seriously, so we should too.
The Problem is Still There
We’ve been down this path before with Copilot because researchers reported how they had compromised BizChat at sessions at the Black Hat USA conference in 2024. Copilot agents didn’t exist at the time, but the same method of sending a message for Copilot to process that convinced Copilot to do bad things was used.
Zenity reported the exploit described in the article to Microsoft, who fixed the problem in late April 2025, most likely through the deployment of a “prompt shielding mechanism.” The net result is that attackers cannot use the same avenue to exfiltrate large quantities of data. However, the kicker is that the fix works for the attack as described, but as Zenity says “Unfortunately because of the natural language nature of prompt injections blocking them using classifiers or any kind of blacklisting isn’t enough.” In other words, attackers can find new ways to use natural language prompts to convince agents to do silly things.
The Stupidity of Agents
The problem is, despite all the hype around artificial intelligence, Copilot agents are essentially stupid. They cannot distinguish between good and bad users, nor can they decide that an action demanded of them is wrong or inappropriate. As we head into an era where agents can talk to agents, the need for increased oversight about what agents do and how they do it is all too apparent.
Managing agent objects in Entra ID is a good way to incorporate agents within the infrastructure, but that doesn’t do anything to reveal what agents do in response to different user prompts, including prompts deliberately intended to do harm. You could pour over the details of Copilot interactions captured by the aiInteractionHistory API or the compliance records captured in user mailboxes by the Microsoft 365 substrate searching for evidence of attacker intervention, but what would you look for? Searching for the one API record where 500 Salesforce customer records are sent to an address in Russia might be the equivalent of seeking the proverbial needle in a haystack.
Although ISVs can work on the problem of agent governance, it’s obvious that ISVs can only work with agents using the APIs and data made available by Microsoft. Dealing with prompt injections is something that will remain a Microsoft competence.
As AI tools become more embedded into our work, the more attackers will be interested in seeking gaps. The battle between Microsoft and the bad guys to protect Copilot (apps and agents) is likely to be a ping-pong contest of exploit followed by remediation
The Goodness of Copilot Studio Agents
Don’t get me wrong. I like the ease of use that Copilot Studio brings to the agent creation process. Even an old duffer like me can create and publish an agent from Copilot Studio (Figure 1). We’re simply at the point in the evolution of AI tooling where security, governance, and management struggle to keep up with the pace of innovation and overhyped expectations.

It would be an overreaction to block users from being able to develop agents with Copilot Studio. Some controls are necessary and restricting those who develop agents to a limited group with oversight before publication seems like a reasonable step. I’m sure that more comprehensive development methodologies and structures will emerge over time and will be discussed on the web and at conferences. I’m looking forward to hearing what the experts say at the TEC event in Minneapolis at the end of September. Come along and join the debate!
So much change, all the time. It’s a challenge to stay abreast of all the updates Microsoft makes across the Microsoft 365 ecosystem. Subscribe to the Office 365 for IT Pros eBook to receive monthly insights into what happens, why it happens, and what new features and capabilities mean for your tenant.
How can I add bulleted list in Matlab annotation textbox
I am trying to add a bulleted list in a Matlab annotation textbox. I’ve tried using LaTex commands but all I get is: Unable to interpret latex string, such as
str = ‘begin{itemized} item First Line item Second Line end{itemized}’;
figure;
ha = annotation(‘textbox’, [0.5 0.5 0.4 0.2], ‘Interpreter’, ‘latex’);
set(ha, ‘String’, str)
This is similar to the way you put a table in an annotated textbox:
<http://www.mathworks.com/matlabcentral/answers/99523-how-do-i-create-a-latex-table-in-a-matlab-text-box Latex Table>I am trying to add a bulleted list in a Matlab annotation textbox. I’ve tried using LaTex commands but all I get is: Unable to interpret latex string, such as
str = ‘begin{itemized} item First Line item Second Line end{itemized}’;
figure;
ha = annotation(‘textbox’, [0.5 0.5 0.4 0.2], ‘Interpreter’, ‘latex’);
set(ha, ‘String’, str)
This is similar to the way you put a table in an annotated textbox:
<http://www.mathworks.com/matlabcentral/answers/99523-how-do-i-create-a-latex-table-in-a-matlab-text-box Latex Table> I am trying to add a bulleted list in a Matlab annotation textbox. I’ve tried using LaTex commands but all I get is: Unable to interpret latex string, such as
str = ‘begin{itemized} item First Line item Second Line end{itemized}’;
figure;
ha = annotation(‘textbox’, [0.5 0.5 0.4 0.2], ‘Interpreter’, ‘latex’);
set(ha, ‘String’, str)
This is similar to the way you put a table in an annotated textbox:
<http://www.mathworks.com/matlabcentral/answers/99523-how-do-i-create-a-latex-table-in-a-matlab-text-box Latex Table> latex, bulleted list, annotation MATLAB Answers — New Questions
How to generate multiple output in Simulink with multiple input
Recently, in order to get more familiar with simulink, I tried to establish some easy simulink model(figure shown in the following), however, there is a wierd bug. I inserted a sine wave with different amplitude, equivalently, two inputs into the matlab function block. Intuitively, this testbench should gives two output, but my workspace window only showed one ! so I want to consult what kind of consideration that I miss, thanks for you guys answer this question!(attatched file is the code of function block )Recently, in order to get more familiar with simulink, I tried to establish some easy simulink model(figure shown in the following), however, there is a wierd bug. I inserted a sine wave with different amplitude, equivalently, two inputs into the matlab function block. Intuitively, this testbench should gives two output, but my workspace window only showed one ! so I want to consult what kind of consideration that I miss, thanks for you guys answer this question!(attatched file is the code of function block ) Recently, in order to get more familiar with simulink, I tried to establish some easy simulink model(figure shown in the following), however, there is a wierd bug. I inserted a sine wave with different amplitude, equivalently, two inputs into the matlab function block. Intuitively, this testbench should gives two output, but my workspace window only showed one ! so I want to consult what kind of consideration that I miss, thanks for you guys answer this question!(attatched file is the code of function block ) simulink MATLAB Answers — New Questions
Plot now showing correctly
I was working on my code like 10 days ago in 2025a, the code is running and the plot is showing correctly. I decided to run again to take some screenshot of my plot but my plot is no longer displaying correctly. If I print the plot, I will see the correct plot on the print dialog but the original plot window is showing up very bad. Screenshot applied. Please any immediate help will be appreciated as this is my school assignment.
My computer is Linux Ubuntu 22.04
clear all; close all; clc;
%% System Parameters
% Physical parameters of the DC motor
Ra = 1.0; % Armature resistance (Ohm)
La = 0.5; % Armature inductance (H)
J = 0.01; % Moment of inertia (Nms^2/rad)
b = 0.1; % Damping coefficient (Nms)
KT = 0.01; % Torque constant (Nm/A)
Ke = 0.01; % Back EMF constant (Nm/A)
K = Ke; % In SI units, Ke = Ki = K
%% Transfer Function Definition
% Open loop transfer function: θ(s)/Ea(s)
% G(s) = K / [(Js + b)(Las + Ra) + K^2]
% Coefficients calculation
num = K;
den_coeff = [J*La, (J*Ra + b*La), (b*Ra + K^2)];
den = den_coeff;
% Create transfer function
G = tf(num, den);
% Display the transfer function
fprintf(‘Open Loop Transfer Function:n’);
fprintf(‘G(s) = %.4f / (%.4fs^2 + %.4fs + %.4f)n’, num, den(1), den(2), den(3));
%% Performance Specifications
% Desired specifications:
% – Settling time (Ts) < 2 seconds
% – Percentage Overshoot (PO) < 5%
% – Steady State Error (SSE) < 1%
fprintf(‘nDesired Specifications:n’);
fprintf(‘- Settling time (Ts) < 2 secondsn’);
fprintf(‘- Percentage Overshoot (PO) < 5%%n’);
fprintf(‘- Steady State Error (SSE) < 1%%nn’);
%% Step 1: Open Loop Response
fprintf(‘=== STEP 1: OPEN LOOP RESPONSE ===n’);
figure(1);
[y1, t1] = step(G);
plot(t1, y1, ‘b-‘, ‘LineWidth’, 2);
title(‘Open Loop Step Response’);
xlabel(‘Time (seconds)’);
ylabel(‘Angular Position (rad)’);
grid on;
% Calculate performance metrics for open loop
stepinfo_ol = stepinfo(G);
fprintf(‘Open Loop Performance:n’);
fprintf(‘Rise Time (Tr): %.4f secondsn’, stepinfo_ol.RiseTime);
fprintf(‘Settling Time (Ts): %.4f secondsn’, stepinfo_ol.SettlingTime);
fprintf(‘Peak Overshoot: %.2f%%n’, stepinfo_ol.Overshoot);
% Steady state error calculation (for unit step)
% For Type 0 system: ess = 1/(1+Kp) where Kp = lim s->0 G(s)
Kp_ol = dcgain(G);
ess_ol = 1/(1+Kp_ol) * 100; % Convert to percentage
fprintf(‘Steady State Error: %.2f%%n’, ess_ol);
fprintf(‘Comments: Open loop system is unstable or has poor performancenn’);
Bad Plot
Print DialogI was working on my code like 10 days ago in 2025a, the code is running and the plot is showing correctly. I decided to run again to take some screenshot of my plot but my plot is no longer displaying correctly. If I print the plot, I will see the correct plot on the print dialog but the original plot window is showing up very bad. Screenshot applied. Please any immediate help will be appreciated as this is my school assignment.
My computer is Linux Ubuntu 22.04
clear all; close all; clc;
%% System Parameters
% Physical parameters of the DC motor
Ra = 1.0; % Armature resistance (Ohm)
La = 0.5; % Armature inductance (H)
J = 0.01; % Moment of inertia (Nms^2/rad)
b = 0.1; % Damping coefficient (Nms)
KT = 0.01; % Torque constant (Nm/A)
Ke = 0.01; % Back EMF constant (Nm/A)
K = Ke; % In SI units, Ke = Ki = K
%% Transfer Function Definition
% Open loop transfer function: θ(s)/Ea(s)
% G(s) = K / [(Js + b)(Las + Ra) + K^2]
% Coefficients calculation
num = K;
den_coeff = [J*La, (J*Ra + b*La), (b*Ra + K^2)];
den = den_coeff;
% Create transfer function
G = tf(num, den);
% Display the transfer function
fprintf(‘Open Loop Transfer Function:n’);
fprintf(‘G(s) = %.4f / (%.4fs^2 + %.4fs + %.4f)n’, num, den(1), den(2), den(3));
%% Performance Specifications
% Desired specifications:
% – Settling time (Ts) < 2 seconds
% – Percentage Overshoot (PO) < 5%
% – Steady State Error (SSE) < 1%
fprintf(‘nDesired Specifications:n’);
fprintf(‘- Settling time (Ts) < 2 secondsn’);
fprintf(‘- Percentage Overshoot (PO) < 5%%n’);
fprintf(‘- Steady State Error (SSE) < 1%%nn’);
%% Step 1: Open Loop Response
fprintf(‘=== STEP 1: OPEN LOOP RESPONSE ===n’);
figure(1);
[y1, t1] = step(G);
plot(t1, y1, ‘b-‘, ‘LineWidth’, 2);
title(‘Open Loop Step Response’);
xlabel(‘Time (seconds)’);
ylabel(‘Angular Position (rad)’);
grid on;
% Calculate performance metrics for open loop
stepinfo_ol = stepinfo(G);
fprintf(‘Open Loop Performance:n’);
fprintf(‘Rise Time (Tr): %.4f secondsn’, stepinfo_ol.RiseTime);
fprintf(‘Settling Time (Ts): %.4f secondsn’, stepinfo_ol.SettlingTime);
fprintf(‘Peak Overshoot: %.2f%%n’, stepinfo_ol.Overshoot);
% Steady state error calculation (for unit step)
% For Type 0 system: ess = 1/(1+Kp) where Kp = lim s->0 G(s)
Kp_ol = dcgain(G);
ess_ol = 1/(1+Kp_ol) * 100; % Convert to percentage
fprintf(‘Steady State Error: %.2f%%n’, ess_ol);
fprintf(‘Comments: Open loop system is unstable or has poor performancenn’);
Bad Plot
Print Dialog I was working on my code like 10 days ago in 2025a, the code is running and the plot is showing correctly. I decided to run again to take some screenshot of my plot but my plot is no longer displaying correctly. If I print the plot, I will see the correct plot on the print dialog but the original plot window is showing up very bad. Screenshot applied. Please any immediate help will be appreciated as this is my school assignment.
My computer is Linux Ubuntu 22.04
clear all; close all; clc;
%% System Parameters
% Physical parameters of the DC motor
Ra = 1.0; % Armature resistance (Ohm)
La = 0.5; % Armature inductance (H)
J = 0.01; % Moment of inertia (Nms^2/rad)
b = 0.1; % Damping coefficient (Nms)
KT = 0.01; % Torque constant (Nm/A)
Ke = 0.01; % Back EMF constant (Nm/A)
K = Ke; % In SI units, Ke = Ki = K
%% Transfer Function Definition
% Open loop transfer function: θ(s)/Ea(s)
% G(s) = K / [(Js + b)(Las + Ra) + K^2]
% Coefficients calculation
num = K;
den_coeff = [J*La, (J*Ra + b*La), (b*Ra + K^2)];
den = den_coeff;
% Create transfer function
G = tf(num, den);
% Display the transfer function
fprintf(‘Open Loop Transfer Function:n’);
fprintf(‘G(s) = %.4f / (%.4fs^2 + %.4fs + %.4f)n’, num, den(1), den(2), den(3));
%% Performance Specifications
% Desired specifications:
% – Settling time (Ts) < 2 seconds
% – Percentage Overshoot (PO) < 5%
% – Steady State Error (SSE) < 1%
fprintf(‘nDesired Specifications:n’);
fprintf(‘- Settling time (Ts) < 2 secondsn’);
fprintf(‘- Percentage Overshoot (PO) < 5%%n’);
fprintf(‘- Steady State Error (SSE) < 1%%nn’);
%% Step 1: Open Loop Response
fprintf(‘=== STEP 1: OPEN LOOP RESPONSE ===n’);
figure(1);
[y1, t1] = step(G);
plot(t1, y1, ‘b-‘, ‘LineWidth’, 2);
title(‘Open Loop Step Response’);
xlabel(‘Time (seconds)’);
ylabel(‘Angular Position (rad)’);
grid on;
% Calculate performance metrics for open loop
stepinfo_ol = stepinfo(G);
fprintf(‘Open Loop Performance:n’);
fprintf(‘Rise Time (Tr): %.4f secondsn’, stepinfo_ol.RiseTime);
fprintf(‘Settling Time (Ts): %.4f secondsn’, stepinfo_ol.SettlingTime);
fprintf(‘Peak Overshoot: %.2f%%n’, stepinfo_ol.Overshoot);
% Steady state error calculation (for unit step)
% For Type 0 system: ess = 1/(1+Kp) where Kp = lim s->0 G(s)
Kp_ol = dcgain(G);
ess_ol = 1/(1+Kp_ol) * 100; % Convert to percentage
fprintf(‘Steady State Error: %.2f%%n’, ess_ol);
fprintf(‘Comments: Open loop system is unstable or has poor performancenn’);
Bad Plot
Print Dialog matlab, plotting MATLAB Answers — New Questions
Wierd wiggle in plot of symbolic expression
Apart from the small wiggles (the biggest near t=8) the plot of the symbolic expression below looks correct. How can I remove the wiggles?
clear; clc; close all;
syms t real;
syms k integer;
syms d integer;
cutoff(t) = piecewise(t < 0, 0, t);
parity(k) = 1-2*mod(k,2);
f(t,k,d) = 1/factorial(d)*parity(k)*nchoosek(d+1, k)*cutoff(t-k)^d;
B(t,d) = symsum(f,k,0,floor(t));
syms tau real; % dummy variable of integration just for the case d=0
IB0(t) = int(B(tau,0),tau,0,t);
figure
hold on
fplot(IB0(t),[0,9], ‘LineWidth’, 2);
xlim([-1,10]);
ylim([-0.2,1.2]);Apart from the small wiggles (the biggest near t=8) the plot of the symbolic expression below looks correct. How can I remove the wiggles?
clear; clc; close all;
syms t real;
syms k integer;
syms d integer;
cutoff(t) = piecewise(t < 0, 0, t);
parity(k) = 1-2*mod(k,2);
f(t,k,d) = 1/factorial(d)*parity(k)*nchoosek(d+1, k)*cutoff(t-k)^d;
B(t,d) = symsum(f,k,0,floor(t));
syms tau real; % dummy variable of integration just for the case d=0
IB0(t) = int(B(tau,0),tau,0,t);
figure
hold on
fplot(IB0(t),[0,9], ‘LineWidth’, 2);
xlim([-1,10]);
ylim([-0.2,1.2]); Apart from the small wiggles (the biggest near t=8) the plot of the symbolic expression below looks correct. How can I remove the wiggles?
clear; clc; close all;
syms t real;
syms k integer;
syms d integer;
cutoff(t) = piecewise(t < 0, 0, t);
parity(k) = 1-2*mod(k,2);
f(t,k,d) = 1/factorial(d)*parity(k)*nchoosek(d+1, k)*cutoff(t-k)^d;
B(t,d) = symsum(f,k,0,floor(t));
syms tau real; % dummy variable of integration just for the case d=0
IB0(t) = int(B(tau,0),tau,0,t);
figure
hold on
fplot(IB0(t),[0,9], ‘LineWidth’, 2);
xlim([-1,10]);
ylim([-0.2,1.2]); plot, symbolic MATLAB Answers — New Questions