Month: April 2025
Connect Microsoft 365 to Gmail – Microsoft Support
Connect Microsoft 365 to Gmail
Shadow Roles: AWS Defaults Can Open the Door to Service Takeover
What if the biggest risk to your cloud environment wasn’t a misconfiguration you made, but one baked into the defaults?
Our research uncovered security concerns in the deployment of resources within a few AWS services, specifically in the default AWS service roles. These roles, often created automatically or recommended during setup, grant overly broad permissions, such as full S3 access. These default roles silently introduce attack paths that allow privilege escalation, cross-service access, and even potential account compromise.
What if the biggest risk to your cloud environment wasn’t a misconfiguration you made, but one baked into the defaults?
Our research uncovered security concerns in the deployment of resources within a few AWS services, specifically in the default AWS service roles. These roles, often created automatically or recommended during setup, grant overly broad permissions, such as full S3 access. These default roles silently introduce attack paths that allow privilege escalation, cross-service access, and even potential account compromise.Read More
python method from matlab object
Here is the problem I have,
I have a python class, which contain properties that are memebers of specific class, typically to rotate a motor.
The class is defined as below, it uses the pytrinamic for the PD42-1370 motors: https://github.com/analogdevicesinc/PyTrinamic
I have made a wrapper class of the example provided for the Pytrinamic: https://github.com/analogdevicesinc/PyTrinamic/blob/master/examples/modules/TMCM1370/TMCL/rotate_demo.py
"""
pd42_1370.py wrapper to connect to the PD42-X-1370 stepper motor
"""
import pytrinamic
from pytrinamic.connections import ConnectionManager
from pytrinamic.connections import UsbTmclInterface
from pytrinamic.modules import TMCM1370
class PD42_1370():
def __init__(self,com_port,baudrate):
self.com_port = com_port
self.baudrate = baudrate
options = "–interface serial_tmcl –port "+ str(self.com_port)+ " –data_rate "+str(self.baudrate)
self.connection_manager = ConnectionManager(options)
self.interface = self.connection_manager.connect()
print("connected")
self.module = TMCM1370(self.interface)
print("module added")
self.motor = self.module.motors[0]
def disconnect(self):
self.connection_manager.disconnect()
print("disconnected")
def rotateRight(self,speed):
self.motor.rotate(speed)
my MATLAB code is:
py.importlib.import_module(‘pd42_1370’)
ax = py.pd42_1370.PD42_1370(‘COM5’,9600)
ax.rotateRight(int32(10000000))
ax.disconnect()
It is working really fine. But instead of sending the command:
ax.rotateRight(int32(10000000))
I would like to write it:
ax.motor.rotate(int32(100000000))
this later throw back an error:
Unrecognized method, property, or field ‘rotate’ for class ‘py.pytrinamic.modules.TMCM1370._MotorTypeA’.
I cannot figure out what is wrong.
If this could be sorted, then it would help by using direct calls to python, rather than keeping developping the wrapper.Here is the problem I have,
I have a python class, which contain properties that are memebers of specific class, typically to rotate a motor.
The class is defined as below, it uses the pytrinamic for the PD42-1370 motors: https://github.com/analogdevicesinc/PyTrinamic
I have made a wrapper class of the example provided for the Pytrinamic: https://github.com/analogdevicesinc/PyTrinamic/blob/master/examples/modules/TMCM1370/TMCL/rotate_demo.py
"""
pd42_1370.py wrapper to connect to the PD42-X-1370 stepper motor
"""
import pytrinamic
from pytrinamic.connections import ConnectionManager
from pytrinamic.connections import UsbTmclInterface
from pytrinamic.modules import TMCM1370
class PD42_1370():
def __init__(self,com_port,baudrate):
self.com_port = com_port
self.baudrate = baudrate
options = "–interface serial_tmcl –port "+ str(self.com_port)+ " –data_rate "+str(self.baudrate)
self.connection_manager = ConnectionManager(options)
self.interface = self.connection_manager.connect()
print("connected")
self.module = TMCM1370(self.interface)
print("module added")
self.motor = self.module.motors[0]
def disconnect(self):
self.connection_manager.disconnect()
print("disconnected")
def rotateRight(self,speed):
self.motor.rotate(speed)
my MATLAB code is:
py.importlib.import_module(‘pd42_1370’)
ax = py.pd42_1370.PD42_1370(‘COM5’,9600)
ax.rotateRight(int32(10000000))
ax.disconnect()
It is working really fine. But instead of sending the command:
ax.rotateRight(int32(10000000))
I would like to write it:
ax.motor.rotate(int32(100000000))
this later throw back an error:
Unrecognized method, property, or field ‘rotate’ for class ‘py.pytrinamic.modules.TMCM1370._MotorTypeA’.
I cannot figure out what is wrong.
If this could be sorted, then it would help by using direct calls to python, rather than keeping developping the wrapper. Here is the problem I have,
I have a python class, which contain properties that are memebers of specific class, typically to rotate a motor.
The class is defined as below, it uses the pytrinamic for the PD42-1370 motors: https://github.com/analogdevicesinc/PyTrinamic
I have made a wrapper class of the example provided for the Pytrinamic: https://github.com/analogdevicesinc/PyTrinamic/blob/master/examples/modules/TMCM1370/TMCL/rotate_demo.py
"""
pd42_1370.py wrapper to connect to the PD42-X-1370 stepper motor
"""
import pytrinamic
from pytrinamic.connections import ConnectionManager
from pytrinamic.connections import UsbTmclInterface
from pytrinamic.modules import TMCM1370
class PD42_1370():
def __init__(self,com_port,baudrate):
self.com_port = com_port
self.baudrate = baudrate
options = "–interface serial_tmcl –port "+ str(self.com_port)+ " –data_rate "+str(self.baudrate)
self.connection_manager = ConnectionManager(options)
self.interface = self.connection_manager.connect()
print("connected")
self.module = TMCM1370(self.interface)
print("module added")
self.motor = self.module.motors[0]
def disconnect(self):
self.connection_manager.disconnect()
print("disconnected")
def rotateRight(self,speed):
self.motor.rotate(speed)
my MATLAB code is:
py.importlib.import_module(‘pd42_1370’)
ax = py.pd42_1370.PD42_1370(‘COM5’,9600)
ax.rotateRight(int32(10000000))
ax.disconnect()
It is working really fine. But instead of sending the command:
ax.rotateRight(int32(10000000))
I would like to write it:
ax.motor.rotate(int32(100000000))
this later throw back an error:
Unrecognized method, property, or field ‘rotate’ for class ‘py.pytrinamic.modules.TMCM1370._MotorTypeA’.
I cannot figure out what is wrong.
If this could be sorted, then it would help by using direct calls to python, rather than keeping developping the wrapper. python, trinamic, class MATLAB Answers — New Questions
Why am I unable to execute my standalone application with an error referring to “mclmcrrt9_4.dll”
Dear support,
I have an application which shows following message at launch: "Could not find version 9.4 of the MATLAB Runtime. Attempting to load mclmcrrt9_4.dll. Please install the correct version of MATLAB Runtime".
I went on that page MATLAB Runtime – MATLAB Compiler – MATLAB to find the version I need.
When lauching the exe file which I get from download, I see a small window indicating that some file extraction is being processed, then that window closes, and it seems nothing has happened. Nowwhere do I find any "v94" folder which I expect to have after all extraction is done. Could you support with this issue ?
Thanks so much.Dear support,
I have an application which shows following message at launch: "Could not find version 9.4 of the MATLAB Runtime. Attempting to load mclmcrrt9_4.dll. Please install the correct version of MATLAB Runtime".
I went on that page MATLAB Runtime – MATLAB Compiler – MATLAB to find the version I need.
When lauching the exe file which I get from download, I see a small window indicating that some file extraction is being processed, then that window closes, and it seems nothing has happened. Nowwhere do I find any "v94" folder which I expect to have after all extraction is done. Could you support with this issue ?
Thanks so much. Dear support,
I have an application which shows following message at launch: "Could not find version 9.4 of the MATLAB Runtime. Attempting to load mclmcrrt9_4.dll. Please install the correct version of MATLAB Runtime".
I went on that page MATLAB Runtime – MATLAB Compiler – MATLAB to find the version I need.
When lauching the exe file which I get from download, I see a small window indicating that some file extraction is being processed, then that window closes, and it seems nothing has happened. Nowwhere do I find any "v94" folder which I expect to have after all extraction is done. Could you support with this issue ?
Thanks so much. runtime matlab download MATLAB Answers — New Questions
Find the range of duplicates in a sorted element
So let’s say I have a vector
a = [6 2 2 5]
I sort it with the function and now:
a = [2 2 5 6]
How do I find the range of the duplicate number(2)? Like, I want it to tell me the start of the duplicte(element1) and the end of the duplicates(element2)
An if I have [2 2 5 5 6]
It tells me copies are in 1-2 and 3-5So let’s say I have a vector
a = [6 2 2 5]
I sort it with the function and now:
a = [2 2 5 6]
How do I find the range of the duplicate number(2)? Like, I want it to tell me the start of the duplicte(element1) and the end of the duplicates(element2)
An if I have [2 2 5 5 6]
It tells me copies are in 1-2 and 3-5 So let’s say I have a vector
a = [6 2 2 5]
I sort it with the function and now:
a = [2 2 5 6]
How do I find the range of the duplicate number(2)? Like, I want it to tell me the start of the duplicte(element1) and the end of the duplicates(element2)
An if I have [2 2 5 5 6]
It tells me copies are in 1-2 and 3-5 sort, vector MATLAB Answers — New Questions
When I try to open MATLAB, only a file named matlab_crash_dump.11828 is created and MATLAB does not open.
When I try to open MATLAB, only a file named matlab_crash_dump.11828 is created and MATLAB does not open. I have a license. How can I open MATLAB?
The matlab_crash_dump.11828 file is provided in the attached zip file.
Thank you.When I try to open MATLAB, only a file named matlab_crash_dump.11828 is created and MATLAB does not open. I have a license. How can I open MATLAB?
The matlab_crash_dump.11828 file is provided in the attached zip file.
Thank you. When I try to open MATLAB, only a file named matlab_crash_dump.11828 is created and MATLAB does not open. I have a license. How can I open MATLAB?
The matlab_crash_dump.11828 file is provided in the attached zip file.
Thank you. matlab, matlab_crash_dump, 11828 MATLAB Answers — New Questions
Microsoft Introduces Control for Direct Send in Exchange Online
Moving Exchange Online Away from Unauthenticated Connections with Reject Send

If your tenant still has devices that send email to Exchange Online, you should pay attention to the April 28 announcement about more control over the Direct Send feature. This step is part of the overall campaign to improve the security of Exchange Online that’s included initiatives like removing support for Exchange Web Services (EWS) and only accepting inbound mail from supported versions of Exchange Server in hybrid configurations.
Direct Send is a method for devices or applications to unauthenticated send email to Exchange Online recipients using an external mail server using an accepted domain for a Microsoft 365 tenant. No mailbox is required, so Direct Send is a relatively painless way to set up an email connection to internal recipients (Exchange Online rejects messages sent to external recipients).
Authenticated Connections Preferred
Because authenticated connections are used, Microsoft would prefer customers to use client SMTP submission (SMTP AUTH) or SMTP relay instead of Direct Send. The announcement says that Reject Send is a new option to disable Direct Send by default. If they don’t need to use Direct Send, tenants should use Reject Send to block Direct Send because it’s a method that could be exploited by spammers.
SMTP AUTH is next on the list for upgrade as it will lose the ability to connect with Basic authentication in September 2025. Devices and apps that use basic auth today, for instance to send email using the PowerShell Send-MailMessage cmdlet, must be upgraded to use OAuth connections or they will lose the ability to send messages via Exchange Online. Authenticating SMTP connections via OAuth is not a matter of changing out cmdlets, so if a tenant hasn’t started that work to make sure that apps and devices continue working after the September deadline, they’re behind the curve and need to accelerate.
The Reject Send Feature
Direct Send email is anonymous (messages don’t come in via a connector). In the past, this didn’t matter so much because the messages came from devices or apps controlled by you and submitted using a domain owned by the organization. Reject Send works by updating the Exchange organization configuration to instruct the transport service to reject any unauthenticated messages submitted by Direct Send.
Reject Send is currently an opt-in feature, so the RejectDirectSend setting in the organization configuration is set to false. To enable Reject Send, connect to Exchange Online PowerShell as an administrator and run the Set-OrganizationConfig cmdlet:
Set-OrganizationConfig -RejectDirectSend $True
Exchange Online organizational settings need time to percolate to all the mailbox servers used by a tenant, so it could take up to 30 minutes before the update is effective across a tenant. Once the block is effective, messages submitted via Direct Send will then a 550 5.7.68 error. Of course, unless someone is checking devices for errors in mail transmission or notices that expected messages don’t arrive, those errors might remain undetected.
Microsoft says that they plan to enable Reject Send by default for new tenants. The logic here is impeccable. If you’ve never used the feature, don’t get the habit. Reject Send is a preview feature to allow customers to test. An issue with forwarding and Sender Rewriting Scheme (SRS) is documented in the announcement, and Microsoft does not provide a date for general availability.
Before Reject Send can reach general availability, Microsoft must deliver the promised “optics” (a report) to give administrators insight into the level of Direct Send traffic within a tenant. Assuming that the report turns up soon and unless big problems are uncovered during the preview, I’d expect Reject Send to be fully available by the end of 2025.
Connectors Required
It’s possible that some existing mail will be affected by enabling Reject Send. If so, that email must be authenticated by routing across a partner mail flow connector.
SMTP AUTH is the Immediate Priority
There’s not much else to say about Reject Send. If you have a test tenant that mimics the operational environment (complete with apps and devices), you should enable Reject Send and see what happens. You could do the same for the production tenant, but only when prepared to track problems with devices and apps. A better idea might be to wait for the promised report to understand the level of Direct Send traffic within the organization.
Given the looming deadline for SMTP AUTH to lose support for basic authentication, this is likely to remain the immediate priority for upgrade. September isn’t that far away, especially when the prime vacation period is in the middle.
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 agentic AI is driving AI-first business transformation for customers to achieve more
The role of agentic AI has grown rapidly over the past several months as organizational leaders seek ways to accelerate AI Transformation. We firmly believe that Agents + Copilot + Human Ambition can deliver real AI differentiation for our customers. By putting the autonomous capabilities of an agent to work for their businesses, our customers are unlocking AI opportunity to realize greater value. The recent introduction of Microsoft 365 Copilot Chat is delivering on our promise of “Copilot for all” by providing frontline workers with a free, secure and enterprise-ready AI chat interface. Our customers are building their own custom agents with the no-code, low-code features of Microsoft Copilot Studio, allowing citizen and professional developers to extend the capabilities of Copilot and deliver on the unique needs of their industry. We also offer the best prebuilt agent framework right out-of-the-box, such as Sales Agent that works autonomously to help sellers build pipeline and close more deals with greater speed. Similarly, we recently announced general purpose reasoning agents — such as Researcher and Analyst — and invite all of our Microsoft 365 Copilot users to try these in their environments.
It is exciting to see how agents are driving pragmatic AI innovation for our customers by increasing productivity, creating capacity across every role and function and improving business processes. Below are a few highlights from the past quarter that underscore the impact of an agentic AI approach — from improving employee experiences to streamlined workflows and significant cost savings.
Agentic service management software provider Atomicwork leveraged Azure AI Foundry to create Atom — an AI agent that transforms the digital workplace experience for employees and automates service delivery. Adopters of this agentic management platform recognize significant benefits, such as reduced operational costs and increased employee satisfaction, with one customer achieving a 65% deflection rate within six months of implementation and projections of 80% by the end of the year. Integration within Microsoft Teams and other enterprise tools have further streamlined service delivery, allowing employees easier access to information and support. The company’s AI-driven approach has resulted in a 20% increase in accuracy and 75% reduction in response latency when compared to competing solutions.
To support employees as they manage the high demand of internal requests and to create a more satisfying work environment, BDO Colombia used Copilot Studio and Power Platform to develop BeTic 2.0 — an agent that centralizes and automates key payroll and finance processes. The agent reduced operational workload by 50%, optimized 78% of internal processes and showed 99.9% accuracy in managed requests. It also helped reduce duplicative work, optimized workflows, improved the employee-client experience and continues to serve as a competitive differentiator for the company in the market.
Dow is using agents to automate the shipping invoice analysis process and streamline its global supply chain to unlock new efficiencies and value. Receiving more than 100,000 shipping invoices via PDF each year, Dow built an autonomous agent in Copilot Studio to scan for billing inaccuracies and surface them in a dashboard for employee review. Using Freight Agent — a second agent built in Copilot Studio — employees can investigate further by “dialoguing with the data” in natural language. The agents are helping employees solve the challenge of hidden losses autonomously within minutes rather than weeks or months. Dow expects to save millions of dollars on shipping costs through increased accuracy in logistic rates and billing within the first year.
As a leading provider of sustainable energy in Belgium, Eneco serves over 1.5 million customers. Facing performance issues with their existing chatbot, Eneco developed a new AI-driven agent using the no-code, graphical interface in Copilot Studio. This multilingual agent was deployed on the company website in just three months, integrating seamlessly with its live chat platform. The new agent manages 24,000 chats per month — an increase of 140% over the previous solution — and resolves 70% more customer conversations without a handoff to a live representative. For requests that do require escalation, the agent provides an AI-generated summary of the conversation for a more optimized call center experience.
To reimagine trend forecasting and consumer marketing, The Estée Lauder Companies Inc. leveraged Copilot Studio to develop ConsumerIQ — an agent that centralizes and streamlines consumer data to enable instant access to actionable insights. Using natural language prompts, the agent reduced the time required for marketers to gather data from hours to seconds, while accelerating decision-making and helping prevent duplicated research. Together with Azure OpenAI Service and Azure AI Search, teams can gather data, identify trends, build marketing assets, inform research and move products to market faster.
To create proposals and streamline knowledge retrieval and organization, Fujitsu leveraged Azure AI Agent Service within Azure AI Foundry to develop an intelligent, scalable AI agent for sales automation. The agent boosted productivity of sales teams by 67% while addressing knowledge gaps and allowing them to build stronger customer relationships. This transformation allowed teams to shift from time-intensive tasks to strategic planning and customer relationship building, while also supporting new hires with product information and strategic guidance.
To reduce manual tasks and help employees deliver exceptional experiences, global baker Grupo Bimbo established its first ever technology Center of Excellence. Using Power Platform solutions and Copilot Studio, teams created 7,000 power apps, 18,000 processes and 650 agents to reduce busy work and enhance consumer service. By automating low-value tasks, the company saved tens of millions of dollars annually in development efforts and operational efficiencies. Grupo Bimbo also migrated to Azure for its AI capabilities, scalability, security and rapid time to market for apps.
KPMG developed Comply AI — an agent that helps identify environment, social and governance compliance. Using Microsoft AI technologies, the agent helps identify relevant obligations, generate statements in natural language, assess control effectiveness and redraft control descriptions. This has already helped one of its customers achieve 70% improvement in Controls and Risks descriptions, an 18-month reduction in compliance program timelines and a 50% cut in ongoing compliance efforts. KPMG is also using an agent to support new hires by providing templates and historical references to speed up the onboarding process and reduce follow-up calls by 20%.
To significantly enhance its customer service operations, T-Mobile used Power Apps to develop PromoGenius — an app that combines promotional data from multiple systems and documents to keep frontline retail employees equipped with the latest promotional information for customers. Using Copilot Studio, the company embedded an agent in the app so customer service representatives can instantly search for technical details from device manufacturers and create a customer-facing view of product information in a fraction of the time a manual search would require. PromoGenius is the second most-used app in the company, with 83,000 unique users and 500,000 launches a month.
Using Copilot Studio, Virgin Money developed Redi — an agent serving as a digital host within a mobile app for credit card customers. The agent, trained to understand colloquialisms and even known to tell jokes, serves as a secure way for customers to get answers quickly while understanding appropriate context for when a live representative is required. The company views this agent as a tool for its employees to better serve customers, handling over one million interactions, boosting customer satisfaction and becoming one of the bank’s top-rated service channels. Redi now supports customers across Virgin Money’s digital platforms and has been recognized with an industry award for AI in financial services.
To help employees navigate countless procedures, evolving regulations and complex banking systems, Wells Fargo built an agent through Teams to ensure fast and accurate customer support. Using large language models, the agent provides instant access to guidance on 1,700 internal procedures across 4,000 bank branches. Employees can now locate needed information faster without support from a colleague, with 75% of searches happening through the agent and response times reduced from 10 minutes to 30 seconds.
There is immense potential for agents to drive AI-first differentiation for organizations everywhere, especially when combined with Copilot and human ambition. At Microsoft, we believe AI is about empowering human achievement, unlocking potential and democratizing intelligence for as many people as possible with our cloud and AI solutions — as evidenced by these AI Transformation stories of more than 700 customers and partners. I look forward to partnering with you to unlock continued AI opportunity, drive pragmatic innovation and realize meaningful business impact for your organization.
The post How agentic AI is driving AI-first business transformation for customers to achieve more appeared first on The Official Microsoft Blog.
The role of agentic AI has grown rapidly over the past several months as organizational leaders seek ways to accelerate AI Transformation. We firmly believe that Agents + Copilot + Human Ambition can deliver real AI differentiation for our customers. By putting the autonomous capabilities of an agent to work for their businesses, our customers…
The post How agentic AI is driving AI-first business transformation for customers to achieve more appeared first on The Official Microsoft Blog.Read More
Possibility to Restore deleted requirement
Hi.
Using Simulink Requirements from the Requirements Error, I deleted a requirement and I was trying to restore it.
Is there any Undo or Restore command or a workaround to solve the problem?
Thanks.Hi.
Using Simulink Requirements from the Requirements Error, I deleted a requirement and I was trying to restore it.
Is there any Undo or Restore command or a workaround to solve the problem?
Thanks. Hi.
Using Simulink Requirements from the Requirements Error, I deleted a requirement and I was trying to restore it.
Is there any Undo or Restore command or a workaround to solve the problem?
Thanks. restore requirement, simulink MATLAB Answers — New Questions
Accessing workspace variables with parallel workers
I have a simulink model that I would like to run a number of times over a range of 2 different variables. In my simulink model I was using model callbacks to take the 2 random initial variables and calculate the initial conditions to some of my integrators but this wasn’t working and now I am doing this in the for loops. However when I run the simulation it throws an error saying "Warning: Error in the simulation was caused by missing variable ‘q_e2b0’. Set "TransferBaseWorkspaceVariables" option to "on" to fix the issue." I tried setting that in setModelParameters but that doesn’t work either.
Below is a pseduo code of my script:
num_sims = length(phi_range)*length(theta_range);
simIn(1:num_sims) = Simulink.SimulationInput(‘SixDOFSimulink’);
sim_itr = 1;
for i = 1:length(phi_range)
for j = 1:length(theta_range)
phi0 = phi_range(i);
theta0 = theta_range(j);
% do calculations %
pos0 = %value%
v_b0 = %value%
w0 = %value%
q_e2b_0 = %value%
simIn(sim_itr) = simIn(sim_itr).setModelParameter(‘SimulationMode’, ‘normal’, …
‘SaveTime’, ‘on’, …
‘SaveOutput’, ‘on’);
simIn(sim_itr) = simIn(sim_itr).setVariable(‘theta0’, theta0, ‘workspace’, ‘SixDOFSimulink’);
simIn(sim_itr) = simIn(sim_itr).setVariable(‘phi0’, phi0, ‘workspace’, ‘SixDOFSimunlink’);
simIn(sim_itr) = simIn(sim_itr).setVariable(‘q_e2b0’, q_e2b0, ‘workspace’, ‘SixDOFSimunlink’);
simIn(sim_itr) = simIn(sim_itr).setVariable(‘v_b0’, v_b0, ‘workspace’, ‘SixDOFSimunlink’);
simIn(sim_itr) = simIn(sim_itr).setVariable(‘pos0’, pos0, ‘workspace’, ‘SixDOFSimunlink’);
simIn(sim_itr) = simIn(sim_itr).setVariable(‘w0’, w0, ‘workspace’, ‘SixDOFSimunlink’);
sim_itr = sim_itr+1;
end
end
out = parsim(simIn, ‘ShowProgress’, ‘on’);
delete(gcp(‘nocreate’))I have a simulink model that I would like to run a number of times over a range of 2 different variables. In my simulink model I was using model callbacks to take the 2 random initial variables and calculate the initial conditions to some of my integrators but this wasn’t working and now I am doing this in the for loops. However when I run the simulation it throws an error saying "Warning: Error in the simulation was caused by missing variable ‘q_e2b0’. Set "TransferBaseWorkspaceVariables" option to "on" to fix the issue." I tried setting that in setModelParameters but that doesn’t work either.
Below is a pseduo code of my script:
num_sims = length(phi_range)*length(theta_range);
simIn(1:num_sims) = Simulink.SimulationInput(‘SixDOFSimulink’);
sim_itr = 1;
for i = 1:length(phi_range)
for j = 1:length(theta_range)
phi0 = phi_range(i);
theta0 = theta_range(j);
% do calculations %
pos0 = %value%
v_b0 = %value%
w0 = %value%
q_e2b_0 = %value%
simIn(sim_itr) = simIn(sim_itr).setModelParameter(‘SimulationMode’, ‘normal’, …
‘SaveTime’, ‘on’, …
‘SaveOutput’, ‘on’);
simIn(sim_itr) = simIn(sim_itr).setVariable(‘theta0’, theta0, ‘workspace’, ‘SixDOFSimulink’);
simIn(sim_itr) = simIn(sim_itr).setVariable(‘phi0’, phi0, ‘workspace’, ‘SixDOFSimunlink’);
simIn(sim_itr) = simIn(sim_itr).setVariable(‘q_e2b0’, q_e2b0, ‘workspace’, ‘SixDOFSimunlink’);
simIn(sim_itr) = simIn(sim_itr).setVariable(‘v_b0’, v_b0, ‘workspace’, ‘SixDOFSimunlink’);
simIn(sim_itr) = simIn(sim_itr).setVariable(‘pos0’, pos0, ‘workspace’, ‘SixDOFSimunlink’);
simIn(sim_itr) = simIn(sim_itr).setVariable(‘w0’, w0, ‘workspace’, ‘SixDOFSimunlink’);
sim_itr = sim_itr+1;
end
end
out = parsim(simIn, ‘ShowProgress’, ‘on’);
delete(gcp(‘nocreate’)) I have a simulink model that I would like to run a number of times over a range of 2 different variables. In my simulink model I was using model callbacks to take the 2 random initial variables and calculate the initial conditions to some of my integrators but this wasn’t working and now I am doing this in the for loops. However when I run the simulation it throws an error saying "Warning: Error in the simulation was caused by missing variable ‘q_e2b0’. Set "TransferBaseWorkspaceVariables" option to "on" to fix the issue." I tried setting that in setModelParameters but that doesn’t work either.
Below is a pseduo code of my script:
num_sims = length(phi_range)*length(theta_range);
simIn(1:num_sims) = Simulink.SimulationInput(‘SixDOFSimulink’);
sim_itr = 1;
for i = 1:length(phi_range)
for j = 1:length(theta_range)
phi0 = phi_range(i);
theta0 = theta_range(j);
% do calculations %
pos0 = %value%
v_b0 = %value%
w0 = %value%
q_e2b_0 = %value%
simIn(sim_itr) = simIn(sim_itr).setModelParameter(‘SimulationMode’, ‘normal’, …
‘SaveTime’, ‘on’, …
‘SaveOutput’, ‘on’);
simIn(sim_itr) = simIn(sim_itr).setVariable(‘theta0’, theta0, ‘workspace’, ‘SixDOFSimulink’);
simIn(sim_itr) = simIn(sim_itr).setVariable(‘phi0’, phi0, ‘workspace’, ‘SixDOFSimunlink’);
simIn(sim_itr) = simIn(sim_itr).setVariable(‘q_e2b0’, q_e2b0, ‘workspace’, ‘SixDOFSimunlink’);
simIn(sim_itr) = simIn(sim_itr).setVariable(‘v_b0’, v_b0, ‘workspace’, ‘SixDOFSimunlink’);
simIn(sim_itr) = simIn(sim_itr).setVariable(‘pos0’, pos0, ‘workspace’, ‘SixDOFSimunlink’);
simIn(sim_itr) = simIn(sim_itr).setVariable(‘w0’, w0, ‘workspace’, ‘SixDOFSimunlink’);
sim_itr = sim_itr+1;
end
end
out = parsim(simIn, ‘ShowProgress’, ‘on’);
delete(gcp(‘nocreate’)) simulink, parallel computing toolbox MATLAB Answers — New Questions
I am having trouble getting the engine speed to 0 rpm when simulating a series hybrid vehicle controller.
Hi, I am having trouble controlling the motor block speed to 0 when the motor start signal is 0. It works fine when I give the motor speed 800rpm when the start signal is 0
However when I give the speed 0 rpm when the signal is 0, the result is that the motor speed decreases.
I have attached the simulink model and the driving cycle I built with this question. It’s built on matlab r2022a and based on the model in the following link: https://www.mathworks.com/help/sdl/ug/series-hybrid-transmission.html
If someone have any idea about a solution to my problem, I will be very grateful.
Thanks in advance to anybody that awnser to this post ! :)Hi, I am having trouble controlling the motor block speed to 0 when the motor start signal is 0. It works fine when I give the motor speed 800rpm when the start signal is 0
However when I give the speed 0 rpm when the signal is 0, the result is that the motor speed decreases.
I have attached the simulink model and the driving cycle I built with this question. It’s built on matlab r2022a and based on the model in the following link: https://www.mathworks.com/help/sdl/ug/series-hybrid-transmission.html
If someone have any idea about a solution to my problem, I will be very grateful.
Thanks in advance to anybody that awnser to this post ! 🙂 Hi, I am having trouble controlling the motor block speed to 0 when the motor start signal is 0. It works fine when I give the motor speed 800rpm when the start signal is 0
However when I give the speed 0 rpm when the signal is 0, the result is that the motor speed decreases.
I have attached the simulink model and the driving cycle I built with this question. It’s built on matlab r2022a and based on the model in the following link: https://www.mathworks.com/help/sdl/ug/series-hybrid-transmission.html
If someone have any idea about a solution to my problem, I will be very grateful.
Thanks in advance to anybody that awnser to this post ! 🙂 speed, control MATLAB Answers — New Questions
How to obtain the average diameter of a segment of a graph?
I have a graph structure that is formed after binarizing an image of blood vessels and obtaining the skeleton, then creating a graph structure. The graph looks like this:
K >> graph =
graph with properties:
Edges: [773×2 table]
Nodes: [773×0 table]
Which means I have 773 edges and each edge has 2 vertices. The graph edges look like this:
EndNodes Weight
__________ ______
1 2 1
1 53 1.4142
2 3 1
3 4 1
4 5 1
Now, at the end of the graph creation, I have other helper functions that help me create a diameters table with points that have been inferred on the binary image between the vessel walls. So, for each graph point the algorithm tries to look for walls and once found it saves the coordinates and other values in a table.
This is how the table gets created and how it looks like:
diam_tab = table();
for i = 1:n_line % for all the lines detected
row = cell(1,7);
row{1} = dt(i,:); % the diameter measured
row{2} = t; % the time dimension
row{3} = fs; % the frame sampling rate
row{4} = squeeze(permute(w1_t(i,:,:), [1, 3, 2])); % The value coordiantes of the first wall
row{5} = squeeze(permute(w2_t(i,:,:), [1, 3, 2])); % The value coordinates of the second wall
row{6} = line_type(i); % just a string, not relevant
row{7} = util.make_uuid(); % an UUID attached
diam_tab = [diam_tab; row];
end
And finally look like this:
y x fs z1 z2 type UUID
______________ ______________ ______ ________________ ________________ ________ ________________________________________
1×19682 double 1×19682 double 21.383 {2×19682 double} {2×19682 double} "vessel" {‘6ada1ae1-00f8-4d9b-aa7a-80c7be26aaa1’}
1×19682 double 1×19682 double 21.383 {2×19682 double} {2×19682 double} "vessel" {‘b8da617c-f55f-418c-88dc-5862c968a637’}
Now, what I want to do is, modify this table so that it doesn’t take all of the 773 rows but instead only like an average of the diameters over a certain segment of the graph. Let’s suppose say that the graph has a Y shape, I would like to obtain, every lets say 10 points an average diameter of that section.
Then, finally, the diam_tab table will not have 773 rows, but only the ones left after averaging over several sections of the graph, let’s say for a graph length of 100 the result would be 100 rows, but I want to get instead the average of the graph at sections of length for ex 10, which would leave me with 10 rows.
And finally, the diam_table would be updated to reflect these values, or at the very least replaced by a similar functioning table.
So far, this is what I turned up with in my code, which isn’t exactly working well as it seems to only get center points between two nodes and then breaks when I attach the created structure to the graph.
function diameters_table = segment_vessel_table(ts, diam_tab)
graph = ts.load_var(‘center_line’).graph;
[y, x] = find(ts.load_var(‘binary_image’));
node_coordinates = [x, y];
n_vessels = height(diam_tab);
midpoints = zeros(n_vessels, 2);
n_samples_graph = 5;
for i = 1:n_vessels
z1 = diam_tab.z1{i};
z2 = diam_tab.z2{i};
mids = (z1 + z2) / 2;
midpoints(i, 🙂 = mean(mids, 2);
end
idx = round(linspace(1, size(z1, 2), n_samples_graph));
sample_points = mean((z1(:, idx) + z2(:, idx)) / 2, 2);
graph = calculate_branch_centers(graph, node_coordinates);
distances = pdist2(midpoints, graph.Nodes.branch_centers);
[~, branch_idx] = min(distances, [], 2);
diam_tab.branch_id = branch_idx;
diameters_table = diam_tab;
end
function graph = calculate_branch_centers(graph, node_coordinates)
n_edges = height(graph.Edges);
branch_centers = zeros(n_edges, 2);
for i = 1:n_edges
node1 = graph.Edges.EndNodes(i, 1);
node2 = graph.Edges.EndNodes(i, 2);
p1 = node_coordinates(node1, :);
p2 = node_coordinates(node2, :);
branch_centers(i, 🙂 = (p1 + p2) / 2;
end
graph.branch_centers = branch_centers; % it breaks here
end
function [xs, x_names, fs] = load_vars(trial)
ts = trial.load_var("tseries");
diam_tab = ts.load_var("diameters");
diam_tab = segment_vessel_table(ts, diam_tab);
dt = diam_tab{:, "y"};
t = diam_tab.x;
t = t(1,:);
xs = TimeSeries(t, dt’);
x_names = "diameter";
% Freq bands is another part that works and not shown atm
for i = 1:size(freq_bands,1)
name = freq_bands{i,1};
xs = [xs; bands.(name)];
x_names = [x_names; name];
end
endI have a graph structure that is formed after binarizing an image of blood vessels and obtaining the skeleton, then creating a graph structure. The graph looks like this:
K >> graph =
graph with properties:
Edges: [773×2 table]
Nodes: [773×0 table]
Which means I have 773 edges and each edge has 2 vertices. The graph edges look like this:
EndNodes Weight
__________ ______
1 2 1
1 53 1.4142
2 3 1
3 4 1
4 5 1
Now, at the end of the graph creation, I have other helper functions that help me create a diameters table with points that have been inferred on the binary image between the vessel walls. So, for each graph point the algorithm tries to look for walls and once found it saves the coordinates and other values in a table.
This is how the table gets created and how it looks like:
diam_tab = table();
for i = 1:n_line % for all the lines detected
row = cell(1,7);
row{1} = dt(i,:); % the diameter measured
row{2} = t; % the time dimension
row{3} = fs; % the frame sampling rate
row{4} = squeeze(permute(w1_t(i,:,:), [1, 3, 2])); % The value coordiantes of the first wall
row{5} = squeeze(permute(w2_t(i,:,:), [1, 3, 2])); % The value coordinates of the second wall
row{6} = line_type(i); % just a string, not relevant
row{7} = util.make_uuid(); % an UUID attached
diam_tab = [diam_tab; row];
end
And finally look like this:
y x fs z1 z2 type UUID
______________ ______________ ______ ________________ ________________ ________ ________________________________________
1×19682 double 1×19682 double 21.383 {2×19682 double} {2×19682 double} "vessel" {‘6ada1ae1-00f8-4d9b-aa7a-80c7be26aaa1’}
1×19682 double 1×19682 double 21.383 {2×19682 double} {2×19682 double} "vessel" {‘b8da617c-f55f-418c-88dc-5862c968a637’}
Now, what I want to do is, modify this table so that it doesn’t take all of the 773 rows but instead only like an average of the diameters over a certain segment of the graph. Let’s suppose say that the graph has a Y shape, I would like to obtain, every lets say 10 points an average diameter of that section.
Then, finally, the diam_tab table will not have 773 rows, but only the ones left after averaging over several sections of the graph, let’s say for a graph length of 100 the result would be 100 rows, but I want to get instead the average of the graph at sections of length for ex 10, which would leave me with 10 rows.
And finally, the diam_table would be updated to reflect these values, or at the very least replaced by a similar functioning table.
So far, this is what I turned up with in my code, which isn’t exactly working well as it seems to only get center points between two nodes and then breaks when I attach the created structure to the graph.
function diameters_table = segment_vessel_table(ts, diam_tab)
graph = ts.load_var(‘center_line’).graph;
[y, x] = find(ts.load_var(‘binary_image’));
node_coordinates = [x, y];
n_vessels = height(diam_tab);
midpoints = zeros(n_vessels, 2);
n_samples_graph = 5;
for i = 1:n_vessels
z1 = diam_tab.z1{i};
z2 = diam_tab.z2{i};
mids = (z1 + z2) / 2;
midpoints(i, 🙂 = mean(mids, 2);
end
idx = round(linspace(1, size(z1, 2), n_samples_graph));
sample_points = mean((z1(:, idx) + z2(:, idx)) / 2, 2);
graph = calculate_branch_centers(graph, node_coordinates);
distances = pdist2(midpoints, graph.Nodes.branch_centers);
[~, branch_idx] = min(distances, [], 2);
diam_tab.branch_id = branch_idx;
diameters_table = diam_tab;
end
function graph = calculate_branch_centers(graph, node_coordinates)
n_edges = height(graph.Edges);
branch_centers = zeros(n_edges, 2);
for i = 1:n_edges
node1 = graph.Edges.EndNodes(i, 1);
node2 = graph.Edges.EndNodes(i, 2);
p1 = node_coordinates(node1, :);
p2 = node_coordinates(node2, :);
branch_centers(i, 🙂 = (p1 + p2) / 2;
end
graph.branch_centers = branch_centers; % it breaks here
end
function [xs, x_names, fs] = load_vars(trial)
ts = trial.load_var("tseries");
diam_tab = ts.load_var("diameters");
diam_tab = segment_vessel_table(ts, diam_tab);
dt = diam_tab{:, "y"};
t = diam_tab.x;
t = t(1,:);
xs = TimeSeries(t, dt’);
x_names = "diameter";
% Freq bands is another part that works and not shown atm
for i = 1:size(freq_bands,1)
name = freq_bands{i,1};
xs = [xs; bands.(name)];
x_names = [x_names; name];
end
end I have a graph structure that is formed after binarizing an image of blood vessels and obtaining the skeleton, then creating a graph structure. The graph looks like this:
K >> graph =
graph with properties:
Edges: [773×2 table]
Nodes: [773×0 table]
Which means I have 773 edges and each edge has 2 vertices. The graph edges look like this:
EndNodes Weight
__________ ______
1 2 1
1 53 1.4142
2 3 1
3 4 1
4 5 1
Now, at the end of the graph creation, I have other helper functions that help me create a diameters table with points that have been inferred on the binary image between the vessel walls. So, for each graph point the algorithm tries to look for walls and once found it saves the coordinates and other values in a table.
This is how the table gets created and how it looks like:
diam_tab = table();
for i = 1:n_line % for all the lines detected
row = cell(1,7);
row{1} = dt(i,:); % the diameter measured
row{2} = t; % the time dimension
row{3} = fs; % the frame sampling rate
row{4} = squeeze(permute(w1_t(i,:,:), [1, 3, 2])); % The value coordiantes of the first wall
row{5} = squeeze(permute(w2_t(i,:,:), [1, 3, 2])); % The value coordinates of the second wall
row{6} = line_type(i); % just a string, not relevant
row{7} = util.make_uuid(); % an UUID attached
diam_tab = [diam_tab; row];
end
And finally look like this:
y x fs z1 z2 type UUID
______________ ______________ ______ ________________ ________________ ________ ________________________________________
1×19682 double 1×19682 double 21.383 {2×19682 double} {2×19682 double} "vessel" {‘6ada1ae1-00f8-4d9b-aa7a-80c7be26aaa1’}
1×19682 double 1×19682 double 21.383 {2×19682 double} {2×19682 double} "vessel" {‘b8da617c-f55f-418c-88dc-5862c968a637’}
Now, what I want to do is, modify this table so that it doesn’t take all of the 773 rows but instead only like an average of the diameters over a certain segment of the graph. Let’s suppose say that the graph has a Y shape, I would like to obtain, every lets say 10 points an average diameter of that section.
Then, finally, the diam_tab table will not have 773 rows, but only the ones left after averaging over several sections of the graph, let’s say for a graph length of 100 the result would be 100 rows, but I want to get instead the average of the graph at sections of length for ex 10, which would leave me with 10 rows.
And finally, the diam_table would be updated to reflect these values, or at the very least replaced by a similar functioning table.
So far, this is what I turned up with in my code, which isn’t exactly working well as it seems to only get center points between two nodes and then breaks when I attach the created structure to the graph.
function diameters_table = segment_vessel_table(ts, diam_tab)
graph = ts.load_var(‘center_line’).graph;
[y, x] = find(ts.load_var(‘binary_image’));
node_coordinates = [x, y];
n_vessels = height(diam_tab);
midpoints = zeros(n_vessels, 2);
n_samples_graph = 5;
for i = 1:n_vessels
z1 = diam_tab.z1{i};
z2 = diam_tab.z2{i};
mids = (z1 + z2) / 2;
midpoints(i, 🙂 = mean(mids, 2);
end
idx = round(linspace(1, size(z1, 2), n_samples_graph));
sample_points = mean((z1(:, idx) + z2(:, idx)) / 2, 2);
graph = calculate_branch_centers(graph, node_coordinates);
distances = pdist2(midpoints, graph.Nodes.branch_centers);
[~, branch_idx] = min(distances, [], 2);
diam_tab.branch_id = branch_idx;
diameters_table = diam_tab;
end
function graph = calculate_branch_centers(graph, node_coordinates)
n_edges = height(graph.Edges);
branch_centers = zeros(n_edges, 2);
for i = 1:n_edges
node1 = graph.Edges.EndNodes(i, 1);
node2 = graph.Edges.EndNodes(i, 2);
p1 = node_coordinates(node1, :);
p2 = node_coordinates(node2, :);
branch_centers(i, 🙂 = (p1 + p2) / 2;
end
graph.branch_centers = branch_centers; % it breaks here
end
function [xs, x_names, fs] = load_vars(trial)
ts = trial.load_var("tseries");
diam_tab = ts.load_var("diameters");
diam_tab = segment_vessel_table(ts, diam_tab);
dt = diam_tab{:, "y"};
t = diam_tab.x;
t = t(1,:);
xs = TimeSeries(t, dt’);
x_names = "diameter";
% Freq bands is another part that works and not shown atm
for i = 1:size(freq_bands,1)
name = freq_bands{i,1};
xs = [xs; bands.(name)];
x_names = [x_names; name];
end
end graph, table, handles, image processing MATLAB Answers — New Questions
How to Find Active EWS-Based Apps in a Microsoft 365 Tenant
Use the Exchange Web Services Usage Report to Track Down the Apps Still Using EWS
On April 22, I wrote about the steps Microsoft is taking to prepare for the removal of Exchange Web Services (EWS) from Exchange Online through the introduction of a dedicated app for hybrid interoperability. Essentially, the new app will take over as the fulcrum for fetching data such as free/busy information from on-premises mailboxes, first using EWS before moving to Graph API requests later this year.
This is an example of Microsoft preparing first-party apps before retiring EWS. Third-party apps running in tenants might also still use EWS. It’s important to check if such apps exist so that contact can made with the app vendor to ascertain their plans for EWS retirement. To help with the process, the reports section of the Microsoft 365 admin center has an EWS usage report (Figure 1).

Validating Apps Listed in the EWS Usage Report
The report details the application identifier, SOAP action (API call) and volume, and the last activity date. Application identifiers make a lot of sense to Microsoft 365 (and more specifically, Entra ID), but they’re hard for humans to understand. Fortunately, it’s easy to resolve the application identifiers for many Microsoft apps by consulting the Verify first-party Microsoft apps in (Entra ID) sign-in reports page. A quick check against the apps reported for my tenant found the following apps:
- Office 365 Exchange Online (00000002-0000-0ff1-ce00-000000000000).
- Office 365 SharePoint Online (00000003-0000-0ff1-ce00-000000000000)
- Teams (1fec8e78-bce4-4aaf-ab1b-5451cc387264).
- Microsoft Office (d3590ed6-52b3-4102-aeff-aad2292ab01c)
- Microsoft Outlook (5d661950-3475-41cd-a2c3-d671a3162bc1)
- Teams Web Chat (5e3ce6c0-2b1f-4285-8d4b-75ee78787346).
None of these are surprising. EWS has long been used for calendar lookups, and Teams uses EWS in its middle tier to communicate with Exchange. The apps listed here probably use EWS to fetch information about the current calendar status for users to display that status in their profile data.
Checking for Other Apps
Two explanations exist if you find an application identifier that isn’t in Microsoft’s list of first-party applications. The app is either owned by Microsoft but didn’t make it onto the list for some reason. The more likely reason is that it’s a third-party or custom-developed app that uses EWS.
You can resolve the application identifier by searching the set of enterprise applications in the Entra admin center or with PowerShell. Figure 2 shows an extract of the set of enterprise apps with Teams in the name. You can’t search by application identifier or even sort the set of apps by application identifier, so finding the right app can be tiresome.

Instead of grappling with the Entra admin center UI, it’s usually faster to search for an enterprise application with PowerShell. In this case, I create an interactive Microsoft Graph PowerShell SDK session with the Application.Read.All scope (permission) and use the Get-MgServicePrincipal cmdlet to look for the application with a specific identifier. Once you know the name, you can find other details by examining the app’s properties through PowerShell or the Entra admin center.
Connect-MgGraph -Scopes Application.Read.All Get-MgServicePrincipal -Filter "Appid eq '5d661950-3475-41cd-a2c3-d671a3162bc1'" | Select-Object DisplayName, AppId DisplayName AppId ----------- ----- Microsoft Outlook 5d661950-3475-41cd-a2c3-d671a3162bc1
Time Ebbing Away
Microsoft plans to retire EWS from Exchange Online on 1 October 2026. That seems like a long time away, but it’s not if you have to track down the developers of EWS apps built for your organization internally or externally. Unlike other deadlines, Microsoft won’t extend the retirement date for EWS because the API is considered insecure and a prime method for attackers to exfiltrate data from a compromised tenant.
Perhaps your EWS usage report will only contain references to Microsoft first-party apps. If so, you’re all set. If not, it’s time to get moving and either retire or upgrade apps.
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.
exporting-to-excel-spreadsheets
Hello, I am trying to do what I feel is very basic task. I have numerous excel files. Parameter name across the top row, data point from row 2:xxxx.
What I want to be able to do is go through a number of files, grab the filenames, column x name for title, and say search for the highest poinit in that column, or calculate average of that column.
I’m struggling to really understand how to do this, I’m no programmer, that is 100% certain. If I could get something put together to do this I feel that it could help to me process a majority of the files I work with, not doing this exact task, but very similar. I’ve not had the best of luck finding responses by searching forums, etc to do this for people who don’t understand programming, so I’m looking for an idiots guide to how to do basic tasks like this with matlab. If anyone has something they think would help, please post up.
Thanks!Hello, I am trying to do what I feel is very basic task. I have numerous excel files. Parameter name across the top row, data point from row 2:xxxx.
What I want to be able to do is go through a number of files, grab the filenames, column x name for title, and say search for the highest poinit in that column, or calculate average of that column.
I’m struggling to really understand how to do this, I’m no programmer, that is 100% certain. If I could get something put together to do this I feel that it could help to me process a majority of the files I work with, not doing this exact task, but very similar. I’ve not had the best of luck finding responses by searching forums, etc to do this for people who don’t understand programming, so I’m looking for an idiots guide to how to do basic tasks like this with matlab. If anyone has something they think would help, please post up.
Thanks! Hello, I am trying to do what I feel is very basic task. I have numerous excel files. Parameter name across the top row, data point from row 2:xxxx.
What I want to be able to do is go through a number of files, grab the filenames, column x name for title, and say search for the highest poinit in that column, or calculate average of that column.
I’m struggling to really understand how to do this, I’m no programmer, that is 100% certain. If I could get something put together to do this I feel that it could help to me process a majority of the files I work with, not doing this exact task, but very similar. I’ve not had the best of luck finding responses by searching forums, etc to do this for people who don’t understand programming, so I’m looking for an idiots guide to how to do basic tasks like this with matlab. If anyone has something they think would help, please post up.
Thanks! excel, export, basic MATLAB Answers — New Questions
How do I configure the default camera views in unreal engine co-simulation?
I am using the aerospace toolbox and passing vehicle dynamic state into unreal engine. Everything works great except the camera views in unreal engine editor. I am using Cesium ion which only renders tiles in the vicinity of the main camera fucrum. I have multiple camera views such as one looking down from the top of my rocket at the fins which does not render. The vehicle is relatively small and the default viewer camera angles are very far away from the vehicle. Is there a way to re-configure the default camera views or fix my problem with cesium rendering?I am using the aerospace toolbox and passing vehicle dynamic state into unreal engine. Everything works great except the camera views in unreal engine editor. I am using Cesium ion which only renders tiles in the vicinity of the main camera fucrum. I have multiple camera views such as one looking down from the top of my rocket at the fins which does not render. The vehicle is relatively small and the default viewer camera angles are very far away from the vehicle. Is there a way to re-configure the default camera views or fix my problem with cesium rendering? I am using the aerospace toolbox and passing vehicle dynamic state into unreal engine. Everything works great except the camera views in unreal engine editor. I am using Cesium ion which only renders tiles in the vicinity of the main camera fucrum. I have multiple camera views such as one looking down from the top of my rocket at the fins which does not render. The vehicle is relatively small and the default viewer camera angles are very far away from the vehicle. Is there a way to re-configure the default camera views or fix my problem with cesium rendering? unreal engine, cesium, aerospace toolbox, aerospace blockset, visualization, simulation, simulink MATLAB Answers — New Questions
Why do I receive the error regarding “polyspace.connector.Service” when using the report generator?
While trying report generation, the following error is thrown:
Location: null, user name: xxxxxxxxx,
id: xxx@xxxxxxx, print mode: false Polyspace Report Generator Loading results Error: matlab.internal.webservices.HTTPConnector/copyContentToByteArray (Line 373)
The server returned the status 503 with message "Service Unavailable" in response to the request to URL URL http://localhost:9254/metadata.
However, if I run the analysis and then generate a report, the following message is thrown:
error: polyspace.connector.Service/nGetPort (line 198)
No available ports found in the range 9093-10093
error: polyspace.connector.Service (line 88)
error: polyspace.connector.Query (line 37)
error: PolySpaceResult/Query (line 400)
error: PolySpaceResult/GetResultProperties (line 607)
error: PolySpaceResult/Initialise (line 471)
error: PolySpaceResult (line 103)
error: PolySpaceResultInterface (line 279)
error: polyspace_report_internal (line 174)
error: psrptgenprivate (line 19)
error: polyspace_report (line 7)
polyspace:pscore:noPortForConnectorError
**********************************************************
***
*** Report generation done
***
**********************************************************While trying report generation, the following error is thrown:
Location: null, user name: xxxxxxxxx,
id: xxx@xxxxxxx, print mode: false Polyspace Report Generator Loading results Error: matlab.internal.webservices.HTTPConnector/copyContentToByteArray (Line 373)
The server returned the status 503 with message "Service Unavailable" in response to the request to URL URL http://localhost:9254/metadata.
However, if I run the analysis and then generate a report, the following message is thrown:
error: polyspace.connector.Service/nGetPort (line 198)
No available ports found in the range 9093-10093
error: polyspace.connector.Service (line 88)
error: polyspace.connector.Query (line 37)
error: PolySpaceResult/Query (line 400)
error: PolySpaceResult/GetResultProperties (line 607)
error: PolySpaceResult/Initialise (line 471)
error: PolySpaceResult (line 103)
error: PolySpaceResultInterface (line 279)
error: polyspace_report_internal (line 174)
error: psrptgenprivate (line 19)
error: polyspace_report (line 7)
polyspace:pscore:noPortForConnectorError
**********************************************************
***
*** Report generation done
***
********************************************************** While trying report generation, the following error is thrown:
Location: null, user name: xxxxxxxxx,
id: xxx@xxxxxxx, print mode: false Polyspace Report Generator Loading results Error: matlab.internal.webservices.HTTPConnector/copyContentToByteArray (Line 373)
The server returned the status 503 with message "Service Unavailable" in response to the request to URL URL http://localhost:9254/metadata.
However, if I run the analysis and then generate a report, the following message is thrown:
error: polyspace.connector.Service/nGetPort (line 198)
No available ports found in the range 9093-10093
error: polyspace.connector.Service (line 88)
error: polyspace.connector.Query (line 37)
error: PolySpaceResult/Query (line 400)
error: PolySpaceResult/GetResultProperties (line 607)
error: PolySpaceResult/Initialise (line 471)
error: PolySpaceResult (line 103)
error: PolySpaceResultInterface (line 279)
error: polyspace_report_internal (line 174)
error: psrptgenprivate (line 19)
error: polyspace_report (line 7)
polyspace:pscore:noPortForConnectorError
**********************************************************
***
*** Report generation done
***
********************************************************** polyspace, connector, report, generator, firewall, antivirus MATLAB Answers — New Questions
My 6×6 symbolic Jacobian matrix is massive, and matlabFunction( ) is having trouble writing the corresponding numerical function file.
Hi there!
I currently have a 6×6 symoblic Jacobian using the Symbolic Math Toolbox. It is massive, when I take a peek at it using the Command Window. I then used matlabFunction( ) to convert this symbolic Jacobian to a numerical function. If I use matlabFunction’s default optimize = true, the numerical function file is about 8,000 lines of code, and I get a message there that says the code is too complex to analyze, and that I should reduce the number of operations in my code. On the other hand, if I use matlabFunction’s optimize = false option, the numerical function file is 59,506 lines of code, and I get a message there that says the file is too large. I then tried passing to matlabFunction( ), "Sparse", true, to try to get a sparse numerical Jacobian function file, but I still get the message in the numerical file that the code is too complex to analyze.
What can I do from here?
My goal is to successfully get a numerical Jacobian function file, then evaluate it to get a numerical Jacobian, and then find its eigenvalues using eig( ).
Thanks in advance,Hi there!
I currently have a 6×6 symoblic Jacobian using the Symbolic Math Toolbox. It is massive, when I take a peek at it using the Command Window. I then used matlabFunction( ) to convert this symbolic Jacobian to a numerical function. If I use matlabFunction’s default optimize = true, the numerical function file is about 8,000 lines of code, and I get a message there that says the code is too complex to analyze, and that I should reduce the number of operations in my code. On the other hand, if I use matlabFunction’s optimize = false option, the numerical function file is 59,506 lines of code, and I get a message there that says the file is too large. I then tried passing to matlabFunction( ), "Sparse", true, to try to get a sparse numerical Jacobian function file, but I still get the message in the numerical file that the code is too complex to analyze.
What can I do from here?
My goal is to successfully get a numerical Jacobian function file, then evaluate it to get a numerical Jacobian, and then find its eigenvalues using eig( ).
Thanks in advance, Hi there!
I currently have a 6×6 symoblic Jacobian using the Symbolic Math Toolbox. It is massive, when I take a peek at it using the Command Window. I then used matlabFunction( ) to convert this symbolic Jacobian to a numerical function. If I use matlabFunction’s default optimize = true, the numerical function file is about 8,000 lines of code, and I get a message there that says the code is too complex to analyze, and that I should reduce the number of operations in my code. On the other hand, if I use matlabFunction’s optimize = false option, the numerical function file is 59,506 lines of code, and I get a message there that says the file is too large. I then tried passing to matlabFunction( ), "Sparse", true, to try to get a sparse numerical Jacobian function file, but I still get the message in the numerical file that the code is too complex to analyze.
What can I do from here?
My goal is to successfully get a numerical Jacobian function file, then evaluate it to get a numerical Jacobian, and then find its eigenvalues using eig( ).
Thanks in advance, jacobian symbolic numerical matlab MATLAB Answers — New Questions
How do I determine if a column header exists in a table?
I am performing a readtable() command. Sometimes the table contains a column called "x"; sometimes it is called "y". How would you determine if one column exists or not. I looked through the is* functions but did not see anything that I could use in an if statement.I am performing a readtable() command. Sometimes the table contains a column called "x"; sometimes it is called "y". How would you determine if one column exists or not. I looked through the is* functions but did not see anything that I could use in an if statement. I am performing a readtable() command. Sometimes the table contains a column called "x"; sometimes it is called "y". How would you determine if one column exists or not. I looked through the is* functions but did not see anything that I could use in an if statement. existing column MATLAB Answers — New Questions
Automating Microsoft 365 with PowerShell Update #11
Over 300 Pages of Microsoft 365 PowerShell Goodness to Read

The Office 365 for IT Pros writing team are pleased to announce the availability of update 11 for the Automating Microsoft 365 with PowerShell eBook. The eBook is part of the Office 365 for IT Pros (2025 edition) bundle and is also available separately (PDF and EPUB formats) or from Amazon in Kindle and paperback formats. The current version is dated 24 April 2025 and has the version number 11.1.
We typically release an updated version of Automating Microsoft 365 with PowerShell several days before the release of the monthly update of the Office 365 for IT Pros eBook. This approach makes it easier for us to manage the updates for the “big book.” We anticipate that monthly update #119 for Office 365 for IT Pros will be available on May 1.
Subscribers to the Office 365 for IT Pros bundle or to the Automating Microsoft 365 with PowerShell eBook can download the latest files by using the link in the receipt sent to them from Gumroad.com after their original purchase. See our FAQ for more details about how to download updated book files.
New Microsoft Graph PowerShell SDK Version
Microsoft released V2.27 of the Microsoft Graph PowerShell SDK on April 20. This is an important update because it had to address the many woes inflicted on customers with the buggy V2.26 and V2.26.1 releases. Azure Automation runbooks remain an issue (stay with V2.25 if you want to use PowerShell V7.1 or V7.2 runbooks) that will be addressed when Microsoft ships support for PowerShell V7.4 for Azure Automation on June 15, 2025. Two issues must be cleaned up: a clash between the SDK and Exchange Online PowerShell and support for .NET 8. In the interim, V2.27 runs fine with V5.1 runbooks.
License Assignment Bug
After several days of intensive work with V2.27 in interactive and app-only modes, I haven’t noticed any of the obvious flaws that affected its predecessors. Some early cmdlet oddities were cleared up by rebooting my PC. These were likely due to some lingering older components hanging on in memory. Following the reboot, all is well. Then I heard about problems with the Set-MgUserLicense cmdlet (issue #3286) where new licenses cannot be assigned to accounts. It seems like the cmdlet has problems parsing the information passed in the AddLicenses parameter. However, passing the license data in a body parameter works:
$LicenseData = @{ addLicenses = @( @{ disabledPlans = @() skuId = "f30db892-07e9-47e9-837c-80727f46fd3d" } ) removeLicenses = @() } Set-MgUserLicense -Userid $User.id -BodyParameter $LicenseData
Speaking of bugs, if you encounter a problem with V2.27, please report details of the issue and steps to reproduce the problem via the GitHub repro for the SDK. Reporting an issue doesn’t take long and it is really helpful to have issues documented. Microsoft engineering monitors the open issues list and does their best to respond to problems that might affect many customers (like the license issue described above). If you don’t report problems, don’t complain when an SDK cmdlet doesn’t work the way you expect it to.
On to The Next Update
The Automating Microsoft 365 with PowerShell eBook is now well over 300 pages. That’s quite a change from the first version published in July 2024. There’s lots to cover in the next update, including a look at the newly-introduced Graph API usage report API. The API is still in beta and only covers certain parts of Graph usage such as Exchange Online and Teams messaging. The output lacks refinement and doesn’t throw any detailed light into how the Graph APIs are used within a Microsoft 365 tenant. Going forward, that situation is likely to change. It will be interesting to see the usage data generated by Microsoft and how that data is used.
Need some assistance to write and manage PowerShell scripts for Microsoft 365? Get a copy of the Automating Microsoft 365 with PowerShell eBook, available standalone or as part of the Office 365 for IT Pros eBook bundle.
Simulink windows turn yellow almost always.
This is an example. This is data inspector in simulink as an example, other windows mostly do the same. I have been looking on the internet for a solution but found nothing. This is on a new laptop and this issue does not occur on any other program I use. anyone having a similar issue?This is an example. This is data inspector in simulink as an example, other windows mostly do the same. I have been looking on the internet for a solution but found nothing. This is on a new laptop and this issue does not occur on any other program I use. anyone having a similar issue? This is an example. This is data inspector in simulink as an example, other windows mostly do the same. I have been looking on the internet for a solution but found nothing. This is on a new laptop and this issue does not occur on any other program I use. anyone having a similar issue? simulink gui MATLAB Answers — New Questions