Month: March 2025
Unable to Extract Numbers Using OCR Despite Performing Image Processing
I have images from a screen recording from which I am trying extract certain text and numbers.
I then crop the regions of interest (ROI) and proceed to resize the image from each ROI. Finally I apply various processing techniques such as filtering, adaptive histogram equalization, masking, binarization and morphological operations as shown below.
My code is shared as under
function [final_frame,point_cloud_block_values] = block_extractor_v10(img)
%% Define Region of Interest
a0 = 25;
for dd = 1:25
a_n(dd) = a0+45*(dd-1);
end
roi_matrix = [360.*ones(25,1),a_n’,67.*ones(25,1),32.*ones(25,1)];
roi3 = [111.51,1099.51,172.98,43.98]; %Final frame name
point_cloud_block_values = zeros(25,1);
for gg = 1:25
I2 = imcrop(img,roi_matrix(gg,:));
I3 = imresize(I2,[33*63,68*68]);
txt1 = ocr(I3,CharacterSet="0123456789",LayoutAnalysis="line");
temp = str2double(txt1.Words);
if isempty(temp)||txt1.TextLineConfidences <0.5
txt1 = ocr(I2,CharacterSet="0123456789",LayoutAnalysis="line");
temp = str2double(txt1.Words);
if isempty(temp)||txt1.TextLineConfidences <0.5
I3 = imresize(I2,[33*70,68*80]);
txt1 = ocr(I3,CharacterSet="0123456789",LayoutAnalysis="line");
temp = str2double(txt1.Words);
end
end
if isempty(temp)||temp>12000
I3_average1 = rgb2gray(I3);
mask = I3_average1 < 60;
mask = imclose(mask, true(9, 5));
txt1 = ocr(mask,CharacterSet="0123456789",LayoutAnalysis="line");
temp = str2double(txt1.Words);
if isempty(temp)
txt1 = ocr(I2,CharacterSet="0123456789",LayoutAnalysis="line");
temp = str2double(txt1.Words);
end
end
if isempty(temp)||size(temp,1)>1
I3_average1 = rgb2gray(I3);
I3_filt = medfilt2(I3_average1);
I3_filt = adapthisteq(I3_filt);
se = strel(‘disk’,1);
I3_filt = imopen(I3_filt,se);
I3_filt = imbinarize(I3_filt);
txt1 = ocr(I3_filt,CharacterSet="0123456789",LayoutAnalysis="line");
temp = str2double(txt1.Words);
end
point_cloud_block_values(gg) = temp;
end
txt3 = ocr(img,roi3,CharacterSet="_aeFmr0123456789",LayoutAnalysis="line");
if length(point_cloud_block_values) ~=25
error(‘The length of each block must be 25’)
end
final_frame = txt3.Words;
final_frame = char(final_frame);
end
However, I am unable to get 100% accuracy in text detection as there are several instances where the text is incorrectly identified by OCR as shown below.
I have uploaded the entire image database on my my google drive. Please adviseI have images from a screen recording from which I am trying extract certain text and numbers.
I then crop the regions of interest (ROI) and proceed to resize the image from each ROI. Finally I apply various processing techniques such as filtering, adaptive histogram equalization, masking, binarization and morphological operations as shown below.
My code is shared as under
function [final_frame,point_cloud_block_values] = block_extractor_v10(img)
%% Define Region of Interest
a0 = 25;
for dd = 1:25
a_n(dd) = a0+45*(dd-1);
end
roi_matrix = [360.*ones(25,1),a_n’,67.*ones(25,1),32.*ones(25,1)];
roi3 = [111.51,1099.51,172.98,43.98]; %Final frame name
point_cloud_block_values = zeros(25,1);
for gg = 1:25
I2 = imcrop(img,roi_matrix(gg,:));
I3 = imresize(I2,[33*63,68*68]);
txt1 = ocr(I3,CharacterSet="0123456789",LayoutAnalysis="line");
temp = str2double(txt1.Words);
if isempty(temp)||txt1.TextLineConfidences <0.5
txt1 = ocr(I2,CharacterSet="0123456789",LayoutAnalysis="line");
temp = str2double(txt1.Words);
if isempty(temp)||txt1.TextLineConfidences <0.5
I3 = imresize(I2,[33*70,68*80]);
txt1 = ocr(I3,CharacterSet="0123456789",LayoutAnalysis="line");
temp = str2double(txt1.Words);
end
end
if isempty(temp)||temp>12000
I3_average1 = rgb2gray(I3);
mask = I3_average1 < 60;
mask = imclose(mask, true(9, 5));
txt1 = ocr(mask,CharacterSet="0123456789",LayoutAnalysis="line");
temp = str2double(txt1.Words);
if isempty(temp)
txt1 = ocr(I2,CharacterSet="0123456789",LayoutAnalysis="line");
temp = str2double(txt1.Words);
end
end
if isempty(temp)||size(temp,1)>1
I3_average1 = rgb2gray(I3);
I3_filt = medfilt2(I3_average1);
I3_filt = adapthisteq(I3_filt);
se = strel(‘disk’,1);
I3_filt = imopen(I3_filt,se);
I3_filt = imbinarize(I3_filt);
txt1 = ocr(I3_filt,CharacterSet="0123456789",LayoutAnalysis="line");
temp = str2double(txt1.Words);
end
point_cloud_block_values(gg) = temp;
end
txt3 = ocr(img,roi3,CharacterSet="_aeFmr0123456789",LayoutAnalysis="line");
if length(point_cloud_block_values) ~=25
error(‘The length of each block must be 25’)
end
final_frame = txt3.Words;
final_frame = char(final_frame);
end
However, I am unable to get 100% accuracy in text detection as there are several instances where the text is incorrectly identified by OCR as shown below.
I have uploaded the entire image database on my my google drive. Please advise I have images from a screen recording from which I am trying extract certain text and numbers.
I then crop the regions of interest (ROI) and proceed to resize the image from each ROI. Finally I apply various processing techniques such as filtering, adaptive histogram equalization, masking, binarization and morphological operations as shown below.
My code is shared as under
function [final_frame,point_cloud_block_values] = block_extractor_v10(img)
%% Define Region of Interest
a0 = 25;
for dd = 1:25
a_n(dd) = a0+45*(dd-1);
end
roi_matrix = [360.*ones(25,1),a_n’,67.*ones(25,1),32.*ones(25,1)];
roi3 = [111.51,1099.51,172.98,43.98]; %Final frame name
point_cloud_block_values = zeros(25,1);
for gg = 1:25
I2 = imcrop(img,roi_matrix(gg,:));
I3 = imresize(I2,[33*63,68*68]);
txt1 = ocr(I3,CharacterSet="0123456789",LayoutAnalysis="line");
temp = str2double(txt1.Words);
if isempty(temp)||txt1.TextLineConfidences <0.5
txt1 = ocr(I2,CharacterSet="0123456789",LayoutAnalysis="line");
temp = str2double(txt1.Words);
if isempty(temp)||txt1.TextLineConfidences <0.5
I3 = imresize(I2,[33*70,68*80]);
txt1 = ocr(I3,CharacterSet="0123456789",LayoutAnalysis="line");
temp = str2double(txt1.Words);
end
end
if isempty(temp)||temp>12000
I3_average1 = rgb2gray(I3);
mask = I3_average1 < 60;
mask = imclose(mask, true(9, 5));
txt1 = ocr(mask,CharacterSet="0123456789",LayoutAnalysis="line");
temp = str2double(txt1.Words);
if isempty(temp)
txt1 = ocr(I2,CharacterSet="0123456789",LayoutAnalysis="line");
temp = str2double(txt1.Words);
end
end
if isempty(temp)||size(temp,1)>1
I3_average1 = rgb2gray(I3);
I3_filt = medfilt2(I3_average1);
I3_filt = adapthisteq(I3_filt);
se = strel(‘disk’,1);
I3_filt = imopen(I3_filt,se);
I3_filt = imbinarize(I3_filt);
txt1 = ocr(I3_filt,CharacterSet="0123456789",LayoutAnalysis="line");
temp = str2double(txt1.Words);
end
point_cloud_block_values(gg) = temp;
end
txt3 = ocr(img,roi3,CharacterSet="_aeFmr0123456789",LayoutAnalysis="line");
if length(point_cloud_block_values) ~=25
error(‘The length of each block must be 25’)
end
final_frame = txt3.Words;
final_frame = char(final_frame);
end
However, I am unable to get 100% accuracy in text detection as there are several instances where the text is incorrectly identified by OCR as shown below.
I have uploaded the entire image database on my my google drive. Please advise ocr, image processing, textscan MATLAB Answers — New Questions
how can I switc between three systems of ODEs basing on the value of the second solution of each system, and repeat the cycle ?
I have three systems of differential equations, each systemt consists of ten equations, and the first system has initial conditions.
I want to automate the solution and switching between these systems where:
When the value of the second solution of the first system reaches a certain value (symbolised by T_b), the solution of the first system stops and the solution of the second system begins, whose initial conditions are the final conditions of the first system.
When the value of the second solution of the second system reaches a value less than T_b, the solution of the second system stops and the solution of the third system starts, whose initial conditions are the final conditions of the second system.
when finish this , repeat the cycle untill finishin the time spane (200 hours).I have three systems of differential equations, each systemt consists of ten equations, and the first system has initial conditions.
I want to automate the solution and switching between these systems where:
When the value of the second solution of the first system reaches a certain value (symbolised by T_b), the solution of the first system stops and the solution of the second system begins, whose initial conditions are the final conditions of the first system.
When the value of the second solution of the second system reaches a value less than T_b, the solution of the second system stops and the solution of the third system starts, whose initial conditions are the final conditions of the second system.
when finish this , repeat the cycle untill finishin the time spane (200 hours). I have three systems of differential equations, each systemt consists of ten equations, and the first system has initial conditions.
I want to automate the solution and switching between these systems where:
When the value of the second solution of the first system reaches a certain value (symbolised by T_b), the solution of the first system stops and the solution of the second system begins, whose initial conditions are the final conditions of the first system.
When the value of the second solution of the second system reaches a value less than T_b, the solution of the second system stops and the solution of the third system starts, whose initial conditions are the final conditions of the second system.
when finish this , repeat the cycle untill finishin the time spane (200 hours). switch, odes system MATLAB Answers — New Questions
Error: Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters.
Hey guys
I’ve written some code to compute cost function at various theta, as follows:
h = X * theta;
J = [1/(2*m)] * sum[(h-y).^2];
All variables have been defined. Upon running the code above, I’m getting the following error message:
Error: Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters.
I have no experience with Matlab, so any help would be appreciated!
ThanksHey guys
I’ve written some code to compute cost function at various theta, as follows:
h = X * theta;
J = [1/(2*m)] * sum[(h-y).^2];
All variables have been defined. Upon running the code above, I’m getting the following error message:
Error: Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters.
I have no experience with Matlab, so any help would be appreciated!
Thanks Hey guys
I’ve written some code to compute cost function at various theta, as follows:
h = X * theta;
J = [1/(2*m)] * sum[(h-y).^2];
All variables have been defined. Upon running the code above, I’m getting the following error message:
Error: Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters.
I have no experience with Matlab, so any help would be appreciated!
Thanks error MATLAB Answers — New Questions
I have an excel file with 5 columns X1/X2/X3/X4/X5 how to I plot 4 plots (X1,X2;X1,X3;X1;X4;X1;X5) on the same figure using the subplot command.
Do I use xlsreadDo I use xlsread Do I use xlsread subplot MATLAB Answers — New Questions
Facilitator Agent Brings AI-Powered Notetaking to Teams Chat
Facilitator Agent Extracts Value from Teams Chat
In an article last month, I discussed why Microsoft 365 Copilot works better for some people than it does for others. The article is based on a blog by Abram Jackson, a program manager working on Microsoft 365 Copilot, and one of the points he makes is that AI fails when it doesn’t have the right data to process. This is why Copilot is so good at summarizing a bounded set of data such as a Teams meeting transcript or email thread and less good at other tasks.
Which brings me to a new bounded AI use in the Teams Facilitator “collaborative communication” agent (see message center notification MC1017117, last updated 10 March 2025, Microsoft 365 roadmap item 476811). The agent has been available in targeted release and is heading for general availability in April 2025. Facilitator is available for meetings and chats, but here I focus on chats because this is an area where AI hasn’t ventured before. According to Microsoft, “the Facilitator creates and maintains an up-to-date summary of important information as the conversation happens, including key decisions, actions items, and open questions to resolve.”
The administrator documentation and user documentation and doesn’t need to be repeating here. Essentially, you’ll need a Microsoft 365 Copilot license to use Facilitator (otherwise known as AI Notes). Note generation is supported for English now with support for more languages in the pipeline.
Control over who can use Facilitator is exerted by allowing people access to the Facilitator app in the Teams admin center. Microsoft says that after general availability, the app is enabled by default and can be used in chats by enabling the AI Notes option (click the icon to the right of the Copilot icon). Let’s see what happens.
Using AI Notes in a Chat
When a chat starts, it’s an empty thread and there’s nothing for AI to process. In fact, AI cannot process information until it has sufficient data to understand what’s happening. This is what’s happening in Figure 1. Facilitator is enabled for the chat but only three messages are in the thread and that’s not enough.

This isn’t a problem because the intention behind Facilitator is that it will help chat participants understand what’s been discussed in a thread. It’s easy to understand the conversation after three messages. It’s much more difficult to do so after a hundred messages in a fast-moving debate. The same situation occurs for Microsoft 365 Copilot in a Teams meeting where a certain amount of data must accumulate in the meeting transcript before Copilot becomes active.
As the chat develops, Facilitator begins to generate notes (Figure 2) to capture the major points raised in the chat, any decisions made, and any questions that remain unanswered. Facilitator updates the notes displayed in the pane periodically and highlights new information that a chat participant hasn’t seen. Like other Copilot implementations, reference numbers allow users to access the source for a note.

At the end of the chat, any of the chat participants can ask Facilitator a question by using an @Faciliator mention and entering the question (Figure 3).

Alternatively, a participant with access to the AI Notes can copy the notes and paste them into the chat. This is a good way to share AI Notes with chat participants who don’t have a Microsoft 365 Copilot license as those people cannot enable and view AI Notes for the chat.
External Participants Turn Off Facilitator
The Facilitator agent can’t be used in chats that involve external participants (guest users or external federated chats). This is likely because no mechanism is available in a chat to allow people to grant consent for their messages to be processed by an agent. When people join a meeting, they have the chance to grant consent for transcription, and it’s the transcript that’s used by Microsoft 365 Copilot to summarize the meeting or answer questions about the proceedings.
Facilitator is a Nice Tool to Have
I like Facilitator very much. It’s an example of focused application of AI LLMs to reason over a bounded set of data to generate results that works well in practice. Facilitator is not enough to justify the full price of a Microsoft 365 Copilot license, but it is step in the right direction and is a sign that we’re moving away from what some call the “party tricks” of Copilot to the implementation of some really useful tools.
Insight like this doesn’t come easily. You’ve got to know the technology and understand how to look behind the scenes. Benefit from the knowledge and experience of the Office 365 for IT Pros team by subscribing to the best eBook covering Office 365 and the wider Microsoft 365 ecosystem.
Supply Chain Security Risk: GitHub Action tj-actions/changed-files Compromised
On March 14th, 2025, security researchers discovered a critical software supply chain vulnerability in the widely-used GitHub Action tj-actions/changed-files
(CVE-2025-30066). This vulnerability allows remote attackers to expose CI/CD secrets via the action’s build logs. The issue affects users who rely on the tj-actions/changed-files
action in GitHub workflows to track changed files within a pull request.
Due to the compromised action, sensitive CI/CD secrets are being inadvertently logged in the GitHub Actions build logs. If these logs are publicly accessible, such as in public repositories, unauthorized users could access and retrieve the clear text secrets. However, there is no evidence suggesting that the exposed secrets were transmitted to any external network.
On March 14th, 2025, security researchers discovered a critical software supply chain vulnerability in the widely-used GitHub Action tj-actions/changed-files (CVE-2025-30066). This vulnerability allows remote attackers to expose CI/CD secrets via the action’s build logs. The issue affects users who rely on the tj-actions/changed-files action in GitHub workflows to track changed files within a pull request.
Due to the compromised action, sensitive CI/CD secrets are being inadvertently logged in the GitHub Actions build logs. If these logs are publicly accessible, such as in public repositories, unauthorized users could access and retrieve the clear text secrets. However, there is no evidence suggesting that the exposed secrets were transmitted to any external network.Read More
create a program that determines the largest three numbers assigned to variables a,b and c and display the largest number matlab
create a program that determines the largest three numbers assigned to variables A,B and C and display the largest number matlabcreate a program that determines the largest three numbers assigned to variables A,B and C and display the largest number matlab create a program that determines the largest three numbers assigned to variables A,B and C and display the largest number matlab homework MATLAB Answers — New Questions
Design of smart meters to curb electricity issues
Working on designing a smart meter to curb electricity connections and power issuesWorking on designing a smart meter to curb electricity connections and power issues Working on designing a smart meter to curb electricity connections and power issues electric_motor_control MATLAB Answers — New Questions
Shapley Values for svm classification with 10 Kfold
Hi,
I would like to compute Shapley Values with SVM tested with Kfold= 10. Here my code:
load fisheriris
inds = ~strcmp(species,’setosa’);
X = meas(inds,3:4);
y = species(inds);
SVMModel = fitcsvm(X,y,Kfold=10);
explainer = shapley(SVMModel);
How I can solve this?Hi,
I would like to compute Shapley Values with SVM tested with Kfold= 10. Here my code:
load fisheriris
inds = ~strcmp(species,’setosa’);
X = meas(inds,3:4);
y = species(inds);
SVMModel = fitcsvm(X,y,Kfold=10);
explainer = shapley(SVMModel);
How I can solve this? Hi,
I would like to compute Shapley Values with SVM tested with Kfold= 10. Here my code:
load fisheriris
inds = ~strcmp(species,’setosa’);
X = meas(inds,3:4);
y = species(inds);
SVMModel = fitcsvm(X,y,Kfold=10);
explainer = shapley(SVMModel);
How I can solve this? shapley, svm, kfold MATLAB Answers — New Questions
Implementing MRAC for Robotic arm of unknown link lengths
Hi! I am currently trying to implement MRAC in Simulink for a 3DOF robotic arm, but I’m a bit confused on the block connections and deriving the reference model.
For the reference model im using a 2nd order equation because the system in non linear, but if link length is unknown how do I implement the adaptive control because to use transfer functions the values should be known? The reference model im trying to implement is : b /s^2 +2s + b
This is my model with PID, but if I want to replace PID with MARC where should I connect the block?Hi! I am currently trying to implement MRAC in Simulink for a 3DOF robotic arm, but I’m a bit confused on the block connections and deriving the reference model.
For the reference model im using a 2nd order equation because the system in non linear, but if link length is unknown how do I implement the adaptive control because to use transfer functions the values should be known? The reference model im trying to implement is : b /s^2 +2s + b
This is my model with PID, but if I want to replace PID with MARC where should I connect the block? Hi! I am currently trying to implement MRAC in Simulink for a 3DOF robotic arm, but I’m a bit confused on the block connections and deriving the reference model.
For the reference model im using a 2nd order equation because the system in non linear, but if link length is unknown how do I implement the adaptive control because to use transfer functions the values should be known? The reference model im trying to implement is : b /s^2 +2s + b
This is my model with PID, but if I want to replace PID with MARC where should I connect the block? marc, matlab, simulink, control, robotics, adaptive control MATLAB Answers — New Questions
I have the error “Unexepected Matlab expression”, how can I solve it ?
Hi everyone, I’m trying to build a custom block with the following code :
component pelton_turbine
% Ce composant calcule le couple généré par l’eau sur la turbine.
% 🔹 Déclaration des ports
nodes
H = foundation.hydraulic.hydraulic; % Port hydraulique
R = foundation.mechanical.rotational.rotational; % Port mécanique rotatif
end
% 🔹 Déclaration des paramètres
parameters
eta = {0.85, ‘1’}; % Rendement de la turbine
rho = {1000, ‘kg/m^3’}; % Densité de l’eau
r = {0.5, ‘m’}; % Rayon moyen de la roue
end
% 🔹 Déclaration des variables internes
variables
T = {0, ‘N*m’}; % Couple généré
Q = {0, ‘m^3/s’}; % Débit volumique
H_head = {0, ‘m’}; % Hauteur d’eau équivalente
end
% 🔹 Bloc des équations
equations
Q == H.q; % Débit entrant dans le port hydraulique
H_head == H.p / (rho * 9.81); % Calcul de la hauteur d’eau équivalente
T == eta * rho * Q * H_head * r; % Formule du couple hydraulique
R.tau == T; % Appliquer le couple sur l’axe mécanique
end
endcomponent
I keep having the same error : Unexepected Matlab expression for the last line (‘endcomponent’). I have already checked a lot of sources of error (hidden spaces, checking that the path is good…). Do you have any idea of what might be wrong ?
Thanks in advance,
NilsHi everyone, I’m trying to build a custom block with the following code :
component pelton_turbine
% Ce composant calcule le couple généré par l’eau sur la turbine.
% 🔹 Déclaration des ports
nodes
H = foundation.hydraulic.hydraulic; % Port hydraulique
R = foundation.mechanical.rotational.rotational; % Port mécanique rotatif
end
% 🔹 Déclaration des paramètres
parameters
eta = {0.85, ‘1’}; % Rendement de la turbine
rho = {1000, ‘kg/m^3’}; % Densité de l’eau
r = {0.5, ‘m’}; % Rayon moyen de la roue
end
% 🔹 Déclaration des variables internes
variables
T = {0, ‘N*m’}; % Couple généré
Q = {0, ‘m^3/s’}; % Débit volumique
H_head = {0, ‘m’}; % Hauteur d’eau équivalente
end
% 🔹 Bloc des équations
equations
Q == H.q; % Débit entrant dans le port hydraulique
H_head == H.p / (rho * 9.81); % Calcul de la hauteur d’eau équivalente
T == eta * rho * Q * H_head * r; % Formule du couple hydraulique
R.tau == T; % Appliquer le couple sur l’axe mécanique
end
endcomponent
I keep having the same error : Unexepected Matlab expression for the last line (‘endcomponent’). I have already checked a lot of sources of error (hidden spaces, checking that the path is good…). Do you have any idea of what might be wrong ?
Thanks in advance,
Nils Hi everyone, I’m trying to build a custom block with the following code :
component pelton_turbine
% Ce composant calcule le couple généré par l’eau sur la turbine.
% 🔹 Déclaration des ports
nodes
H = foundation.hydraulic.hydraulic; % Port hydraulique
R = foundation.mechanical.rotational.rotational; % Port mécanique rotatif
end
% 🔹 Déclaration des paramètres
parameters
eta = {0.85, ‘1’}; % Rendement de la turbine
rho = {1000, ‘kg/m^3’}; % Densité de l’eau
r = {0.5, ‘m’}; % Rayon moyen de la roue
end
% 🔹 Déclaration des variables internes
variables
T = {0, ‘N*m’}; % Couple généré
Q = {0, ‘m^3/s’}; % Débit volumique
H_head = {0, ‘m’}; % Hauteur d’eau équivalente
end
% 🔹 Bloc des équations
equations
Q == H.q; % Débit entrant dans le port hydraulique
H_head == H.p / (rho * 9.81); % Calcul de la hauteur d’eau équivalente
T == eta * rho * Q * H_head * r; % Formule du couple hydraulique
R.tau == T; % Appliquer le couple sur l’axe mécanique
end
endcomponent
I keep having the same error : Unexepected Matlab expression for the last line (‘endcomponent’). I have already checked a lot of sources of error (hidden spaces, checking that the path is good…). Do you have any idea of what might be wrong ?
Thanks in advance,
Nils simscape, custom block, error MATLAB Answers — New Questions
Time to Remove the Old Report Message Add-Ins
Report Message and Report Phishing Deemed Unsafe by Microsoft
Message center notification MC1030003 (12 March 2025) brings news that the built-in Report button (Figure 1) is available for all Outlook clients (from these versions on). The older Report Message and Report Phishing add-ins are now in maintenance mode. Although they continue to work, Microsoft recommends that the add-ins should be removed before the time comes when Microsoft retires and finally removes the now-obsolete add-ins.

Microsoft cites many benefits for the new Report button, including support for reporting email delivered to shared mailboxes, better localization, and the ability to report messages from different places, like the preview window. My favorite is that users can’t report their own messages as junk because Outlook disables the Report button for messages sent by the mailbox owner. For now, this feature only seems to work in OWA and the new Outlook and sometimes it doesn’t work, but it’s certainly a good thing.
If users don’t see the Report button, it could be that the user reported settings in the Microsoft Defender portal need to be adjusted. These settings control whether users can submit messages suspected to be junk email or phishing attempts to Microsoft for analysis.
Some organizations don’t permit people to report email because they don’t want Microsoft personnel to be able to read the reported messages. That’s certainly a valid perspective, but phishing techniques evolve on an ongoing basis and a reported message could disclose a new technique that allows Exchange Online Protection to detect and block dangerous content. Overall, I think it’s best to allow users to report bad email.
Unsafe Add-ins
Rather alarmingly, the FAQ for the built-in Report button says that “there are security issues with the add-in which makes them unsafe for the organization” without saying or even hinting what those issues might be. The FAQ also says that the add-ins “can’t architecturally support functionality that customers keep asking for.” Again, no further information is given to back up the claim. It’s more likely that the problem is that these add-ins are COM-based. Microsoft is dumping this technology as it moves forward with the new Outlook for Windows.
Checking the Report Add-ins
Unless good reason exists not to use built-in client functionality, it’s best to use it rather than add-ins. Given the profusion of integrated apps that could appear in tenants due to Copilot agents, administrators are likely to be busy managing those apps. Getting rid of a few obsolete add-ins won’t ease the agent burden, but it’s step in the right direction.
Taking my own advice to heart, I checked in the Integrated apps section of the Microsoft 365 admin center to see if the Report Message and Report Phishing add-ins were still in use. As you can see from Figure 2, just one active user was detected.

The download option creates a CSV file that gives some details about the app and when it was used, but it doesn’t point to who is using the app. The app properties might be configured to allow access to the add-in to specific users or groups, and that could give a clue to who might be using it. But you’re out of luck if the app is configured for tenant-wide access.
Removing an Add-in
It’s always best to let users know that a change in coming. Microsoft says that people prefer the single Report button. In any case, changing from the add-in to the built-in report button shouldn’t prove too difficult for anyone, so I went ahead and removed the add-in from the set of Integrated apps (Figure 3).

It takes some time for a change like this to make its way to clients. Microsoft documentation says that it can take up to 24 hours before a newly deployed app appears in a client. The same applies to app deletions. My experience is that it can take longer before all clients receive updates. However, removed add-ins should disappear in a couple of days.
I’m glad to report that the removal of the old Report Phishing add-in from my tenant went according to plan. No squawking from annoyed users has happened so far. Maybe they haven’t noticed the change yet.
Insight like this doesn’t come easily. You’ve got to know the technology and understand how to look behind the scenes. Benefit from the knowledge and experience of the Office 365 for IT Pros team by subscribing to the best eBook covering Office 365 and the wider Microsoft 365 ecosystem.
Conditional RTE Write of structure in AUTOSAR Generated Code
I would like to generate code with the "Rte_Write" call inside an "if" statement. , but output should be strcuture datatype. Problem is Autosar generator will not allow me to use virtual port in this case and RTE Write is always located on end of main runnable, not in if statement.
Error:When model ‘COMH_Mini’ has function-call root-level Inport blocks, or is set up to export functions, the input signal to the root-level Outport block ‘COMH_Mini/COMH_sigGroup_CAN_H2CU_33_CINV100msNo01_COMH_sigGroup_CAN_H2CU_33_CINV100msNo01’ cannot be a virtual bus. Consider replacing this Outport block with an Out Bus Element block, or making the input signal a nonvirtual bus.I would like to generate code with the "Rte_Write" call inside an "if" statement. , but output should be strcuture datatype. Problem is Autosar generator will not allow me to use virtual port in this case and RTE Write is always located on end of main runnable, not in if statement.
Error:When model ‘COMH_Mini’ has function-call root-level Inport blocks, or is set up to export functions, the input signal to the root-level Outport block ‘COMH_Mini/COMH_sigGroup_CAN_H2CU_33_CINV100msNo01_COMH_sigGroup_CAN_H2CU_33_CINV100msNo01’ cannot be a virtual bus. Consider replacing this Outport block with an Out Bus Element block, or making the input signal a nonvirtual bus. I would like to generate code with the "Rte_Write" call inside an "if" statement. , but output should be strcuture datatype. Problem is Autosar generator will not allow me to use virtual port in this case and RTE Write is always located on end of main runnable, not in if statement.
Error:When model ‘COMH_Mini’ has function-call root-level Inport blocks, or is set up to export functions, the input signal to the root-level Outport block ‘COMH_Mini/COMH_sigGroup_CAN_H2CU_33_CINV100msNo01_COMH_sigGroup_CAN_H2CU_33_CINV100msNo01’ cannot be a virtual bus. Consider replacing this Outport block with an Out Bus Element block, or making the input signal a nonvirtual bus. autosar, rte write, structures MATLAB Answers — New Questions
To pass a variable outside a parfor loop
I have a loop that looks like:
parfor j=1:length(P)
for i=1:(length(A)-1)
%unnecessary calculations
for i=1:(length(A)-1)
end
for k=1:(length(B)-1)
ri(k,l)=len(k); %len is a vector, that has been defined already
sr(1,i)=r(i); %r is a vector, that has been defined already
end
%unnecessary calculations
end
%unnecessary calculations
end
plot(ri,sr); %I know that these two vectors have different dimensions, it’s just example to show, that I use variables outside parfor
%loop. By the way, I use the variables in functions "plot" and "meshgrid"
So I tried to use cell arrays as Walter Roberson recommend:
%in my program (length(A)-1)=40, (length(B)-1) = 10;
ri=cell(10,40); sr=cell(1,40);
parfor j=1:length(P)
for i=1:(length(A)-1)
for k=1:(length(B)-1)
ri{k,l}=len(k);
sr{1,i}=r(i);
end
end
end
ri1=cell2mat(ri);
sr1=cell2mat(sr); %last two lines are my own ideas I don’t know good or bad
plot(ri1,sr1);
And matlab writes that because of the way of using variables the parfor loop can’t be executed. It writes the same as before changing the code.
The main error is "Unable to classify the variable ‘ri’ in the body of the parfor-loop". Can you help me, please?I have a loop that looks like:
parfor j=1:length(P)
for i=1:(length(A)-1)
%unnecessary calculations
for i=1:(length(A)-1)
end
for k=1:(length(B)-1)
ri(k,l)=len(k); %len is a vector, that has been defined already
sr(1,i)=r(i); %r is a vector, that has been defined already
end
%unnecessary calculations
end
%unnecessary calculations
end
plot(ri,sr); %I know that these two vectors have different dimensions, it’s just example to show, that I use variables outside parfor
%loop. By the way, I use the variables in functions "plot" and "meshgrid"
So I tried to use cell arrays as Walter Roberson recommend:
%in my program (length(A)-1)=40, (length(B)-1) = 10;
ri=cell(10,40); sr=cell(1,40);
parfor j=1:length(P)
for i=1:(length(A)-1)
for k=1:(length(B)-1)
ri{k,l}=len(k);
sr{1,i}=r(i);
end
end
end
ri1=cell2mat(ri);
sr1=cell2mat(sr); %last two lines are my own ideas I don’t know good or bad
plot(ri1,sr1);
And matlab writes that because of the way of using variables the parfor loop can’t be executed. It writes the same as before changing the code.
The main error is "Unable to classify the variable ‘ri’ in the body of the parfor-loop". Can you help me, please? I have a loop that looks like:
parfor j=1:length(P)
for i=1:(length(A)-1)
%unnecessary calculations
for i=1:(length(A)-1)
end
for k=1:(length(B)-1)
ri(k,l)=len(k); %len is a vector, that has been defined already
sr(1,i)=r(i); %r is a vector, that has been defined already
end
%unnecessary calculations
end
%unnecessary calculations
end
plot(ri,sr); %I know that these two vectors have different dimensions, it’s just example to show, that I use variables outside parfor
%loop. By the way, I use the variables in functions "plot" and "meshgrid"
So I tried to use cell arrays as Walter Roberson recommend:
%in my program (length(A)-1)=40, (length(B)-1) = 10;
ri=cell(10,40); sr=cell(1,40);
parfor j=1:length(P)
for i=1:(length(A)-1)
for k=1:(length(B)-1)
ri{k,l}=len(k);
sr{1,i}=r(i);
end
end
end
ri1=cell2mat(ri);
sr1=cell2mat(sr); %last two lines are my own ideas I don’t know good or bad
plot(ri1,sr1);
And matlab writes that because of the way of using variables the parfor loop can’t be executed. It writes the same as before changing the code.
The main error is "Unable to classify the variable ‘ri’ in the body of the parfor-loop". Can you help me, please? parfor, parallel computing MATLAB Answers — New Questions
Plotting a 3d network model using graph
I want to plot a 3 dimensional network model using the graph function.
for example
edges1 = [1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,5,6,6,6,6,6,7,8,8,8,8,10,11,11,11];
egdes2 = [2,3,4,3,4,5,6,7,8,9,4,5,6,10,11,12,7,8,10,11,13,6,8,9,11,12,14,8,9,11,13,14,11,12,13,14];
x = [0,0,0.5000,0.5000,0,0.5000,0,0.5000,0,1.0000,1.0000,1.0000,1.0000,1.0000];
y = [0,0.5000,0,0.5000,0,0.5000,1.0000,1.0000,1.0000,0,0.5000,0,1.0000,1.0000];
z = [0,0.5000,0.5000,0,1.0000,1.0000,0,0.5000,1.0000,0,0.5000,1.0000,0,1.0000];
G = graph(edges1,egdes2);
plot(G,’Xdata’,x,’Ydata’,y,’Zdata’,z)
However, the line visualization does not give good depth percepsion, and 3d structure can only be percieved when roatating the image.
I’m looking for a way to give the edges some volume to improve visualization, without making the image too heavy to handle.
Is there a neat way to do this?
Thanks!I want to plot a 3 dimensional network model using the graph function.
for example
edges1 = [1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,5,6,6,6,6,6,7,8,8,8,8,10,11,11,11];
egdes2 = [2,3,4,3,4,5,6,7,8,9,4,5,6,10,11,12,7,8,10,11,13,6,8,9,11,12,14,8,9,11,13,14,11,12,13,14];
x = [0,0,0.5000,0.5000,0,0.5000,0,0.5000,0,1.0000,1.0000,1.0000,1.0000,1.0000];
y = [0,0.5000,0,0.5000,0,0.5000,1.0000,1.0000,1.0000,0,0.5000,0,1.0000,1.0000];
z = [0,0.5000,0.5000,0,1.0000,1.0000,0,0.5000,1.0000,0,0.5000,1.0000,0,1.0000];
G = graph(edges1,egdes2);
plot(G,’Xdata’,x,’Ydata’,y,’Zdata’,z)
However, the line visualization does not give good depth percepsion, and 3d structure can only be percieved when roatating the image.
I’m looking for a way to give the edges some volume to improve visualization, without making the image too heavy to handle.
Is there a neat way to do this?
Thanks! I want to plot a 3 dimensional network model using the graph function.
for example
edges1 = [1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,5,6,6,6,6,6,7,8,8,8,8,10,11,11,11];
egdes2 = [2,3,4,3,4,5,6,7,8,9,4,5,6,10,11,12,7,8,10,11,13,6,8,9,11,12,14,8,9,11,13,14,11,12,13,14];
x = [0,0,0.5000,0.5000,0,0.5000,0,0.5000,0,1.0000,1.0000,1.0000,1.0000,1.0000];
y = [0,0.5000,0,0.5000,0,0.5000,1.0000,1.0000,1.0000,0,0.5000,0,1.0000,1.0000];
z = [0,0.5000,0.5000,0,1.0000,1.0000,0,0.5000,1.0000,0,0.5000,1.0000,0,1.0000];
G = graph(edges1,egdes2);
plot(G,’Xdata’,x,’Ydata’,y,’Zdata’,z)
However, the line visualization does not give good depth percepsion, and 3d structure can only be percieved when roatating the image.
I’m looking for a way to give the edges some volume to improve visualization, without making the image too heavy to handle.
Is there a neat way to do this?
Thanks! graph, 3d plots MATLAB Answers — New Questions
How can I control a revolute joint with a stepper motor ?
Hello, I want to control a stage which is actuated by a lead screw and stepper motor. Ideally, I need to specify the velocity of the stage or angular velocity of the rotational joint 1 so that it rotates the screw. I used simscape to generate the block diagram from my CAD model from onshape (link below). Is there any way of doing this ? I have tried using the stepper motor model from the simelectronics library but had trouble connecting it to the joint.
Simscape model:
https://drive.google.com/open?id=1WBuGkkchPfXhgrx0C9gV4moEqcxCi6hq
CAD model:
https://cad.onshape.com/documents/d5ee5d8b466e6650b9cfdac4/w/b05ebd7e69bda94f37ce5c0e/e/71f3ef6f9e38afb071c64dfd
Thank youHello, I want to control a stage which is actuated by a lead screw and stepper motor. Ideally, I need to specify the velocity of the stage or angular velocity of the rotational joint 1 so that it rotates the screw. I used simscape to generate the block diagram from my CAD model from onshape (link below). Is there any way of doing this ? I have tried using the stepper motor model from the simelectronics library but had trouble connecting it to the joint.
Simscape model:
https://drive.google.com/open?id=1WBuGkkchPfXhgrx0C9gV4moEqcxCi6hq
CAD model:
https://cad.onshape.com/documents/d5ee5d8b466e6650b9cfdac4/w/b05ebd7e69bda94f37ce5c0e/e/71f3ef6f9e38afb071c64dfd
Thank you Hello, I want to control a stage which is actuated by a lead screw and stepper motor. Ideally, I need to specify the velocity of the stage or angular velocity of the rotational joint 1 so that it rotates the screw. I used simscape to generate the block diagram from my CAD model from onshape (link below). Is there any way of doing this ? I have tried using the stepper motor model from the simelectronics library but had trouble connecting it to the joint.
Simscape model:
https://drive.google.com/open?id=1WBuGkkchPfXhgrx0C9gV4moEqcxCi6hq
CAD model:
https://cad.onshape.com/documents/d5ee5d8b466e6650b9cfdac4/w/b05ebd7e69bda94f37ce5c0e/e/71f3ef6f9e38afb071c64dfd
Thank you simscape, stepper, motor, simelectronics, revolute, joint, power_electronics_control, electric_motor_control MATLAB Answers — New Questions
How to plan path in Cartesian coordinate for robotic manipulator
I uploaded a 6Dof robotic arm rigid tree to matlab simulink , now i need to move the end effector in the shape ‘ M ‘ . How do i obtain the waypoints of the shape ‘ M ‘I uploaded a 6Dof robotic arm rigid tree to matlab simulink , now i need to move the end effector in the shape ‘ M ‘ . How do i obtain the waypoints of the shape ‘ M ‘ I uploaded a 6Dof robotic arm rigid tree to matlab simulink , now i need to move the end effector in the shape ‘ M ‘ . How do i obtain the waypoints of the shape ‘ M ‘ pathplanning, waypoints MATLAB Answers — New Questions
Convert triangular matlab mesh into .msh file
I have generated a 2D triangular mesh in matlab, however, I need to find a way to convert it into a .msh file. I have been searching for ages but haven’t found any way to do this. I think the easiest way to convert it into a .msh file would be in GMSH but I can’t find a way to upload the mesh into GMSH. I’m open to any alternatives.
Many thanks.I have generated a 2D triangular mesh in matlab, however, I need to find a way to convert it into a .msh file. I have been searching for ages but haven’t found any way to do this. I think the easiest way to convert it into a .msh file would be in GMSH but I can’t find a way to upload the mesh into GMSH. I’m open to any alternatives.
Many thanks. I have generated a 2D triangular mesh in matlab, however, I need to find a way to convert it into a .msh file. I have been searching for ages but haven’t found any way to do this. I think the easiest way to convert it into a .msh file would be in GMSH but I can’t find a way to upload the mesh into GMSH. I’m open to any alternatives.
Many thanks. mesh, model, export, file MATLAB Answers — New Questions
Can the standard Soft Actor Critic (SAC) algorithm in Matlab be adapted for hybrid action spaces, or is there another reinforcement learning algorithm in Matlab that is better
The current implementation of the Soft Actor Critic (SAC) algorithm in Matlab is designed only for problems with continuous or discrete action spaces. I’m facing a problem that requires dealing with hybrid action spaces, where some actions are continuous and others are discrete. I am aware that implementations of SAC that accommodate hybrid action spaces have been suggested in the literature. Is it feasible to modify the standard Matlab implementations to handle hybrid actions? If not, is there another reinforcement learning algorithm available in Matlab that is suitable for addressing hybrid action spaces?The current implementation of the Soft Actor Critic (SAC) algorithm in Matlab is designed only for problems with continuous or discrete action spaces. I’m facing a problem that requires dealing with hybrid action spaces, where some actions are continuous and others are discrete. I am aware that implementations of SAC that accommodate hybrid action spaces have been suggested in the literature. Is it feasible to modify the standard Matlab implementations to handle hybrid actions? If not, is there another reinforcement learning algorithm available in Matlab that is suitable for addressing hybrid action spaces? The current implementation of the Soft Actor Critic (SAC) algorithm in Matlab is designed only for problems with continuous or discrete action spaces. I’m facing a problem that requires dealing with hybrid action spaces, where some actions are continuous and others are discrete. I am aware that implementations of SAC that accommodate hybrid action spaces have been suggested in the literature. Is it feasible to modify the standard Matlab implementations to handle hybrid actions? If not, is there another reinforcement learning algorithm available in Matlab that is suitable for addressing hybrid action spaces? hybird reinforcement learning MATLAB Answers — New Questions
Issue with serial communication blocks from support package for arduino nano(CH340 clone)
I’m using arduino nano(ch340) and implementing serial communication with the Raspberry Pi 4B. I’m using USB cable rather than onboard uart pins. I’ve been trying to send data through serial transmit block (from nano) but no results at all. You cannot use ‘monitor and tune’ so only been reading the data(in both Arduino ide’s serial monitor and rasp pi’s terminal) after uploading the model.
The output in serial monitor is gibberish (boxes) while in terminal(screen) it is not visible at all. I generated a model for rasp pi with serial read block from support package where data is zero and status port indicates ‘data not available’. Tried all three modes for transmit block: write, print, println, but same results. I programmed a test program in arduino ide with serial.println function which was successfully displayed results in both terminal and display from rasp pi simulink model. I’ve successfully implemented basic test models like ‘led blink’ in simulink for arduino so my inference is that the problem is only with serial transmit block and its generated code.
My aim is to establish bidirectional serial communication between Raspberry pi and arduino nano, to exchange multiple values simultaneously(probably having different data types) in an array and separate them for their intended use.I’m using arduino nano(ch340) and implementing serial communication with the Raspberry Pi 4B. I’m using USB cable rather than onboard uart pins. I’ve been trying to send data through serial transmit block (from nano) but no results at all. You cannot use ‘monitor and tune’ so only been reading the data(in both Arduino ide’s serial monitor and rasp pi’s terminal) after uploading the model.
The output in serial monitor is gibberish (boxes) while in terminal(screen) it is not visible at all. I generated a model for rasp pi with serial read block from support package where data is zero and status port indicates ‘data not available’. Tried all three modes for transmit block: write, print, println, but same results. I programmed a test program in arduino ide with serial.println function which was successfully displayed results in both terminal and display from rasp pi simulink model. I’ve successfully implemented basic test models like ‘led blink’ in simulink for arduino so my inference is that the problem is only with serial transmit block and its generated code.
My aim is to establish bidirectional serial communication between Raspberry pi and arduino nano, to exchange multiple values simultaneously(probably having different data types) in an array and separate them for their intended use. I’m using arduino nano(ch340) and implementing serial communication with the Raspberry Pi 4B. I’m using USB cable rather than onboard uart pins. I’ve been trying to send data through serial transmit block (from nano) but no results at all. You cannot use ‘monitor and tune’ so only been reading the data(in both Arduino ide’s serial monitor and rasp pi’s terminal) after uploading the model.
The output in serial monitor is gibberish (boxes) while in terminal(screen) it is not visible at all. I generated a model for rasp pi with serial read block from support package where data is zero and status port indicates ‘data not available’. Tried all three modes for transmit block: write, print, println, but same results. I programmed a test program in arduino ide with serial.println function which was successfully displayed results in both terminal and display from rasp pi simulink model. I’ve successfully implemented basic test models like ‘led blink’ in simulink for arduino so my inference is that the problem is only with serial transmit block and its generated code.
My aim is to establish bidirectional serial communication between Raspberry pi and arduino nano, to exchange multiple values simultaneously(probably having different data types) in an array and separate them for their intended use. serial communication, arduino and raspberry pi MATLAB Answers — New Questions