Category: News
Import data does not properly
Dear all,
I moved from the R2024 to R2026 version and now when I import data it shows a very curious data representations for e.g. two column
197 0000 0000->0
196 8000 8000->1
196 6000 6000->0
196 4000 4000->0
rather than
197,0000 0,494778
196,8000 1,07849
196,6000 0,965887
196,4000 0,839238
I did ‘Set type’ to Number, but no real effect.
How can I manage it?
Thanks
Best
MarcoDear all,
I moved from the R2024 to R2026 version and now when I import data it shows a very curious data representations for e.g. two column
197 0000 0000->0
196 8000 8000->1
196 6000 6000->0
196 4000 4000->0
rather than
197,0000 0,494778
196,8000 1,07849
196,6000 0,965887
196,4000 0,839238
I did ‘Set type’ to Number, but no real effect.
How can I manage it?
Thanks
Best
Marco Dear all,
I moved from the R2024 to R2026 version and now when I import data it shows a very curious data representations for e.g. two column
197 0000 0000->0
196 8000 8000->1
196 6000 6000->0
196 4000 4000->0
rather than
197,0000 0,494778
196,8000 1,07849
196,6000 0,965887
196,4000 0,839238
I did ‘Set type’ to Number, but no real effect.
How can I manage it?
Thanks
Best
Marco data import MATLAB Answers — New Questions
How to add Simscape Electrical in simulink
How to add Simscape Electrical in Matlab Student ?
I have Simulink, but can read or reconize electrical tools.How to add Simscape Electrical in Matlab Student ?
I have Simulink, but can read or reconize electrical tools. How to add Simscape Electrical in Matlab Student ?
I have Simulink, but can read or reconize electrical tools. simscape, electrical MATLAB Answers — New Questions
Understanding How Graph Permissions for Groups Work
When to Use Group.Read.All and When to Use GroupMember.Read.All
As you consider the Graph permissions to assign to an app that processes Entra ID groups, you might be tempted to include both the Group.Read.All and GroupMember.Read.All permissions. On the surface, it seems logical that Group.Read.All is required to read properties of the group while GroupMember.Read.All (Figure 1) is needed to read owner and member information for a group. Well, that’s not quite right and the situation is different if using delegated or application permissions, which is why so many might be confused.

Access to Information with Delegated Group.Read.All
The delegated Group.Read.All permission allows a signed-in user to read information for any group that they have access to, including access granted by holding an Entra ID administrator role such as Groups administrator. However, the permission also grants access to the resources of any group that the signed-in user is a member of. Or as the documentation puts it, “Group.* permissions grant the app access to the contents of the group.”
For a Microsoft 365 group, the contents or set of resources includes the membership, ownership, files in the group’s SharePoint site, team artifacts if the group is team-enabled, the group calendar and conversation threads stored in the group mailbox. This is expected because a core principle of Microsoft 365 groups is that members share full access to all group resources.
For example, signed into in an interactive session, we can use the delegated Group.Read.All permission to retrieve details of a group (that the signed-in user can access) followed by the first conversation from the Inbox folder in the group mailbox:
$Group = Get-MgGroup -Filter "displayName eq 'Ultimate Guide to Office 365'"
[array]$Conversation = Get-MgGroupConversation -GroupId $Group.Id -Top 1
$Conversation | Format-List Id, LastDeliveredDateTime, Preview, UniqueSenders
Id : AAQkADk4ZGQzZTFjLTgyNWMtNDE4Ny04ODg5LWRmZjc2Njg0MDdkOQAQAN-EnW00I29EvD6MbDS93IQ=
LastDeliveredDateTime : 27/01/2026 17:32:27
Preview : Chapter 14, "Managing Application Idle Timeout Periods"
Reply in Microsoft Planner
You can also reply to this email to add a task comment.
This task is in the MAC Tasks plan.
UniqueSenders : {Michel de Rooij (MVP)}
The Group.Read.All permission allows access to files in a group’s SharePoint site using the Get-MgGroupDriveItemChild cmdlet. This example finds the default document library for the site and retrieves details of the items in the root folder of the document library.
Get-MgGroupDefaultDrive -GroupId $Group.Id $Root = Get-MgGroupDriveRoot -GroupId $Group.Id -DriveId $Drive.Id [array]$Items = Get-MgGroupDriveItemChild -GroupId $Group.Id -DriveId $Drive.Id -DriveItemId $Root.Id -All
Groups can have plan resources, but Planner does not allow access to plans via delegated Group.Read.All. This is because access to Planner is not authorized by group permissions. A separate set of Task permissions controls access to plans and tasks.
Application Permission Even More Powerful
Because the application Group.Read.All permission enables access to all Entra ID groups, it is a high-profile permission whose assignment to apps should be restricted to when absolutely necessary. Controlled assignment and monitoring are more important for the even more powerful Group.ReadWrite.All permission. Note that the Group.Read.All application permission does not grant access to a group calendar. Only delegated access is supported for group calendars.
The Least Permissioned Nature of GroupMember.Read.All
Which brings me to the GroupMember.Read.All permission. This is not an additive permission to Group.Read.All because the combination delivers precisely nothing extra in terms of access to group data. Remember, Group.Read.All can access group membership and ownership information.
The role of the GroupMember.Read.All permission is to facilitate access to basic group information such as the group identifier and display name, together with the membership (members and owners), including transitive membership.
GroupMember.Read.All grants no access to group resources. As such, GroupMember.Read.All is a least-privilege alternate to Group.Read.All in both delegated and application scenarios and is the right permission to assign to apps and scripts that only need to report or audit group membership, or answer questions like “what groups is this user a member or owner of?”
Fetching User Information
One last thing. GroupMember.Read.All is sufficient to retrieve the membership or ownership of a group. The response is a set of account identifiers, like this:
[array]$Members = Get-MgGroup -GroupId $Group.Id $Members Id DeletedDateTime -- --------------- 0baa2d94-c5d6-4e9e-9fe6-7a2fefd50f42 2d30cc10-234e-47aa-a441-9175c8917775 2e333619-44af-47c1-ad4d-cfc4b7218e70
As you probably know, to get details of the accounts, you can fetch data like display names and email addresses from the special additionalProperties property. This allows apps to do things like list the display names of group members:
$Members.additionalProperties.displayName Tony Redmond Paul Robichaux (Office 365 for IT Pros) Vasil Michev (Technical Guru)
However, if the app doesn’t have at least the User.ReadBasic.All permission, you’ll see something like this:
$Members.additionalProperties
Key Value
--- -----
@odata.type #microsoft.graph.user
businessPhones {}
@odata.type #microsoft.graph.user
businessPhones {}
@odata.type #microsoft.graph.user
businessPhones {}
Nothing is wrong. It’s just that the app doesn’t have permission to read user account properties. If you assign the necessary permission, the data returned will include the missing information:
Key Value
--- -----
@odata.type #microsoft.graph.user
businessPhones {}
displayName Paul Robichaux (Office 365 for IT Pros)
givenName Paul
mail Paul.Robichaux@office365itpros.com
surname Robichaux
userPrincipalName Paul.Robichaux@office365itpros.com
In Conclusion
The rules for assigning Group permission are:
- Use GroupMember.Read.All whenever an app only needs access to basic group details and group membership information.
- Use Group.Read.All when an app needs access to group information, including properties, membership, and resources.
- Include User.ReadBasic.All or User.Read.All to retrieve full details of group members or owners.
- Always start with the least privileged permission and progress to a higher-level permission only when necessary.
It took me a while to get my head around this structure, but it does make sense when you think about how the Graph retrieves data based on granular permissions.
Need help to write and manage PowerShell scripts for Microsoft 365, including Azure Automation runbooks? 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.
Please help me to write character in vertical axis of the run figre as in attached photo
clc;clf;clear;
myLegend1 = {};
rr = [ 0.4 0.5 0.6]
for i =1:numel(rr)
x=0:0.0001:9;
alfa= rr(i);
s=1;h=1;
L1=-0.5;L2=0.4;
c=30;
y=0.5;b=1;
k0=386; ce=3.831*10^2; mu=38.6*10^9;alfat=1.78*10^-5; rho=89.54*10^2; lamda=77.6*10^9;taw=0.5;Tnot=2.93*10^2;
c0=sqrt((lamda+2*mu)/(rho)); Betanot=(3*lamda+2*mu)*alfat; a1=mu/(lamda+2*mu);a2=(mu+lamda)/(lamda+2*mu);a3=(Betanot*Tnot)/(lamda+2*mu);omega=(rho*ce)/(k0);
a4=lamda/(lamda+2*mu);a5=(k0*omega*c0^2)/(k0);a6=(rho*ce*c0^2)/(k0);
a7=(Betanot*c0^2)/(k0); a8=a6*taw; a9=a7*taw; a10=rho*ce*taw*omega*c0^4/(k0); a11=Betanot*taw*omega*c0^4/(k0);w=rho*ce/(k0);
b1=s^2+a1*h^2-(x+y+b).^2;b2=a2*s*h;b3=0;b4=a3*s;b5=alfa*b1;b6=alfa*b2;b7=alfa*b3;b8=2*alfa*b4;
B1=b1*L1^2+b2*L2^2;B2=-b3*L1-b4;
B3=-b5*L1^2-b6*L2^2;
%B4=b7*L1+b8;
B4=B3./4;
sec= ((B1-B2)./(3*B4))-((B1-B2)./(3*B4))+c;
T=-((B1-B2)./(3*B4))+(sec).*exp(-(s*x+h*y+b));
% fprintf(‘%12.10f %15.8f rn’,-((B1-B2)./(3*B4)),(c+((B1-B2)./(3*B4))));
%fir=c+sec;
% N2=zeros(1,1);
% N2=(s*L1+a4*h*L2).*-1*(c+((B1-B2)./(3*B4))).*exp(-(s*x+h*y+b)).*(1-alfa.*T)+a3.*T.*(alfa.*T-1);
% N3=zeros(1,1);
% N3=a1*(h*L1+s*L2)*(1-alfa.*T).*(-1*(c+((B1-B2)./(3*B4))).*exp(-(s*x+h*y+b)));
figure(1)
plot(x,T)
grid on,hold on
myLegend1{i}=[‘alfa= ‘,num2str(rr(i))];
i=i+1;
end
figure(1)
legend(myLegend1)
hold onclc;clf;clear;
myLegend1 = {};
rr = [ 0.4 0.5 0.6]
for i =1:numel(rr)
x=0:0.0001:9;
alfa= rr(i);
s=1;h=1;
L1=-0.5;L2=0.4;
c=30;
y=0.5;b=1;
k0=386; ce=3.831*10^2; mu=38.6*10^9;alfat=1.78*10^-5; rho=89.54*10^2; lamda=77.6*10^9;taw=0.5;Tnot=2.93*10^2;
c0=sqrt((lamda+2*mu)/(rho)); Betanot=(3*lamda+2*mu)*alfat; a1=mu/(lamda+2*mu);a2=(mu+lamda)/(lamda+2*mu);a3=(Betanot*Tnot)/(lamda+2*mu);omega=(rho*ce)/(k0);
a4=lamda/(lamda+2*mu);a5=(k0*omega*c0^2)/(k0);a6=(rho*ce*c0^2)/(k0);
a7=(Betanot*c0^2)/(k0); a8=a6*taw; a9=a7*taw; a10=rho*ce*taw*omega*c0^4/(k0); a11=Betanot*taw*omega*c0^4/(k0);w=rho*ce/(k0);
b1=s^2+a1*h^2-(x+y+b).^2;b2=a2*s*h;b3=0;b4=a3*s;b5=alfa*b1;b6=alfa*b2;b7=alfa*b3;b8=2*alfa*b4;
B1=b1*L1^2+b2*L2^2;B2=-b3*L1-b4;
B3=-b5*L1^2-b6*L2^2;
%B4=b7*L1+b8;
B4=B3./4;
sec= ((B1-B2)./(3*B4))-((B1-B2)./(3*B4))+c;
T=-((B1-B2)./(3*B4))+(sec).*exp(-(s*x+h*y+b));
% fprintf(‘%12.10f %15.8f rn’,-((B1-B2)./(3*B4)),(c+((B1-B2)./(3*B4))));
%fir=c+sec;
% N2=zeros(1,1);
% N2=(s*L1+a4*h*L2).*-1*(c+((B1-B2)./(3*B4))).*exp(-(s*x+h*y+b)).*(1-alfa.*T)+a3.*T.*(alfa.*T-1);
% N3=zeros(1,1);
% N3=a1*(h*L1+s*L2)*(1-alfa.*T).*(-1*(c+((B1-B2)./(3*B4))).*exp(-(s*x+h*y+b)));
figure(1)
plot(x,T)
grid on,hold on
myLegend1{i}=[‘alfa= ‘,num2str(rr(i))];
i=i+1;
end
figure(1)
legend(myLegend1)
hold on clc;clf;clear;
myLegend1 = {};
rr = [ 0.4 0.5 0.6]
for i =1:numel(rr)
x=0:0.0001:9;
alfa= rr(i);
s=1;h=1;
L1=-0.5;L2=0.4;
c=30;
y=0.5;b=1;
k0=386; ce=3.831*10^2; mu=38.6*10^9;alfat=1.78*10^-5; rho=89.54*10^2; lamda=77.6*10^9;taw=0.5;Tnot=2.93*10^2;
c0=sqrt((lamda+2*mu)/(rho)); Betanot=(3*lamda+2*mu)*alfat; a1=mu/(lamda+2*mu);a2=(mu+lamda)/(lamda+2*mu);a3=(Betanot*Tnot)/(lamda+2*mu);omega=(rho*ce)/(k0);
a4=lamda/(lamda+2*mu);a5=(k0*omega*c0^2)/(k0);a6=(rho*ce*c0^2)/(k0);
a7=(Betanot*c0^2)/(k0); a8=a6*taw; a9=a7*taw; a10=rho*ce*taw*omega*c0^4/(k0); a11=Betanot*taw*omega*c0^4/(k0);w=rho*ce/(k0);
b1=s^2+a1*h^2-(x+y+b).^2;b2=a2*s*h;b3=0;b4=a3*s;b5=alfa*b1;b6=alfa*b2;b7=alfa*b3;b8=2*alfa*b4;
B1=b1*L1^2+b2*L2^2;B2=-b3*L1-b4;
B3=-b5*L1^2-b6*L2^2;
%B4=b7*L1+b8;
B4=B3./4;
sec= ((B1-B2)./(3*B4))-((B1-B2)./(3*B4))+c;
T=-((B1-B2)./(3*B4))+(sec).*exp(-(s*x+h*y+b));
% fprintf(‘%12.10f %15.8f rn’,-((B1-B2)./(3*B4)),(c+((B1-B2)./(3*B4))));
%fir=c+sec;
% N2=zeros(1,1);
% N2=(s*L1+a4*h*L2).*-1*(c+((B1-B2)./(3*B4))).*exp(-(s*x+h*y+b)).*(1-alfa.*T)+a3.*T.*(alfa.*T-1);
% N3=zeros(1,1);
% N3=a1*(h*L1+s*L2)*(1-alfa.*T).*(-1*(c+((B1-B2)./(3*B4))).*exp(-(s*x+h*y+b)));
figure(1)
plot(x,T)
grid on,hold on
myLegend1{i}=[‘alfa= ‘,num2str(rr(i))];
i=i+1;
end
figure(1)
legend(myLegend1)
hold on figure MATLAB Answers — New Questions
R2025b Polyspace_Server is silently failing to install
The script below works perfectly locally on an Ubuntu mechine but it refuses to work when called in a Jenkins job.We tried both freestyle and scripted pipelines but always fails on Jenkins.
It fails in Jenkins silently without any clues in the log polyspaceServerOut/install-psserver.log has the contents of installer_input.txt but nothing after that. There is no indication of why it’s not installing the products. and the log PolyTemp/mathworks_xxx.log is empty with zero siize. I am not sure how to debug the problem with empty logs
#!/bin/bash -x
curl to download the bundle from JFrog R2025b_Polyspace_Server_Linux.zip (Works)
unzip -q R2025b_Polyspace_Server_Linux.zip (Works)
unzip -q R2025b/2025_10_06_15_25_35/matlab_R2025b_Linux.zip -d R2025b/2025_10_06_15_25_35 (Works)
mv R2025b/2025_10_06_15_25_35 polyspace_server_installer (Works)
chmod -R 755 polyspace_server_installer (Works)
export TMPDIR=<absolute_path>/PolyTemp (Works)
mkdir -p ${TMPDIR} (Works)
polyspace_server_installer/install -v -inputFile <absolute_path>/polyspace_server_installer/installer_input.txt
The file installer_input.txt has the following entries
agreeToLicense = yes
product.Polyspace_Bug_Finder_Server
product.Polyspace_Code_Prover_Server
mode = silent
fileInstallationKey = XXXXX-XXXXX-XXXXX-XXXXX
licensePath = <absolute_path>/polyspaceServer.lic
destinationFolder = <absolute_path>/polyspaceServer
outputFile = <absolute_path>/polyspaceServerOut/install-psserver.log
improveMATLAB = no
The file polyspaceServer.lic has the following entries
SERVER <host_server> XXXXXXXXXXXX XXXX
USE_SERVER
P.S. The exact same commands currently work fine locally and in Jenkins for 2024bThe script below works perfectly locally on an Ubuntu mechine but it refuses to work when called in a Jenkins job.We tried both freestyle and scripted pipelines but always fails on Jenkins.
It fails in Jenkins silently without any clues in the log polyspaceServerOut/install-psserver.log has the contents of installer_input.txt but nothing after that. There is no indication of why it’s not installing the products. and the log PolyTemp/mathworks_xxx.log is empty with zero siize. I am not sure how to debug the problem with empty logs
#!/bin/bash -x
curl to download the bundle from JFrog R2025b_Polyspace_Server_Linux.zip (Works)
unzip -q R2025b_Polyspace_Server_Linux.zip (Works)
unzip -q R2025b/2025_10_06_15_25_35/matlab_R2025b_Linux.zip -d R2025b/2025_10_06_15_25_35 (Works)
mv R2025b/2025_10_06_15_25_35 polyspace_server_installer (Works)
chmod -R 755 polyspace_server_installer (Works)
export TMPDIR=<absolute_path>/PolyTemp (Works)
mkdir -p ${TMPDIR} (Works)
polyspace_server_installer/install -v -inputFile <absolute_path>/polyspace_server_installer/installer_input.txt
The file installer_input.txt has the following entries
agreeToLicense = yes
product.Polyspace_Bug_Finder_Server
product.Polyspace_Code_Prover_Server
mode = silent
fileInstallationKey = XXXXX-XXXXX-XXXXX-XXXXX
licensePath = <absolute_path>/polyspaceServer.lic
destinationFolder = <absolute_path>/polyspaceServer
outputFile = <absolute_path>/polyspaceServerOut/install-psserver.log
improveMATLAB = no
The file polyspaceServer.lic has the following entries
SERVER <host_server> XXXXXXXXXXXX XXXX
USE_SERVER
P.S. The exact same commands currently work fine locally and in Jenkins for 2024b The script below works perfectly locally on an Ubuntu mechine but it refuses to work when called in a Jenkins job.We tried both freestyle and scripted pipelines but always fails on Jenkins.
It fails in Jenkins silently without any clues in the log polyspaceServerOut/install-psserver.log has the contents of installer_input.txt but nothing after that. There is no indication of why it’s not installing the products. and the log PolyTemp/mathworks_xxx.log is empty with zero siize. I am not sure how to debug the problem with empty logs
#!/bin/bash -x
curl to download the bundle from JFrog R2025b_Polyspace_Server_Linux.zip (Works)
unzip -q R2025b_Polyspace_Server_Linux.zip (Works)
unzip -q R2025b/2025_10_06_15_25_35/matlab_R2025b_Linux.zip -d R2025b/2025_10_06_15_25_35 (Works)
mv R2025b/2025_10_06_15_25_35 polyspace_server_installer (Works)
chmod -R 755 polyspace_server_installer (Works)
export TMPDIR=<absolute_path>/PolyTemp (Works)
mkdir -p ${TMPDIR} (Works)
polyspace_server_installer/install -v -inputFile <absolute_path>/polyspace_server_installer/installer_input.txt
The file installer_input.txt has the following entries
agreeToLicense = yes
product.Polyspace_Bug_Finder_Server
product.Polyspace_Code_Prover_Server
mode = silent
fileInstallationKey = XXXXX-XXXXX-XXXXX-XXXXX
licensePath = <absolute_path>/polyspaceServer.lic
destinationFolder = <absolute_path>/polyspaceServer
outputFile = <absolute_path>/polyspaceServerOut/install-psserver.log
improveMATLAB = no
The file polyspaceServer.lic has the following entries
SERVER <host_server> XXXXXXXXXXXX XXXX
USE_SERVER
P.S. The exact same commands currently work fine locally and in Jenkins for 2024b installation, bug finder server, code prover server MATLAB Answers — New Questions
Find x values where y values are the same from a set of data.
I have 2 datasets from a continuous signal that will display a voltage in 1 set of data (D8) and repeat that voltage in data set D2 after a randomized delay. I need to find the voltage and time these repetitions occur, but I’m unsure of how to do that.
My code finds these repetitions, removes where the 2 datasets intercept as there’s no delay going on there, and displays the time of the repetitions. I need the original voltage, the original time from D8, and the delayed time in D2 when the repeated value occurs.
data = load(‘DatasSet2_Test.txt’); %my directory is different but it includes my name so it just calls the attached file
%Characterize columns
t1 = data(:,1)/1000; %convert time from ms to s
%convert from bits to V
resolution = 2^10-1;
%Data as assigned pairs *10^8 to transfer within the MeV to GeV range
D1 = (data(:,2)*5)/resolution*10^8; D2 = (data(:,3)*5)/resolution*10^8;
D3 = (data(:,4)*5)/resolution*10^8; D4 = (data(:,5)*5)/resolution*10^8;
D5 = (data(:,6)*5)/resolution*10^8; D6 = (data(:,7)*5)/resolution*10^8;
D7 = (data(:,8)*5)/resolution*10^8; D8 = (data(:,9)*5)/resolution*10^8; %all in V
c1 = D8(:)==D2 %finds same voltage indep of time occuring
x1values1 = t1(find(c1)); %Gives time of repeated values
r1usure1 = t1(find(intersect(D8,D2))); %checks for intersections as they don’t include delay
l1 = setdiff(x1values1, r1usure1); %Gives time of repeated values excluding intersections
This is the code I have so far, but it only checks for similar values and returns repeated time values instead of including the original time, and I’ve been struggling to find the associated voltages. I have also attached the file with the signals where the first column is time, column 3 is D2 in V, and column 9 is D8 in V.
This might not be well explained so I will answer questions as quickly as possible. Thank you in advance !I have 2 datasets from a continuous signal that will display a voltage in 1 set of data (D8) and repeat that voltage in data set D2 after a randomized delay. I need to find the voltage and time these repetitions occur, but I’m unsure of how to do that.
My code finds these repetitions, removes where the 2 datasets intercept as there’s no delay going on there, and displays the time of the repetitions. I need the original voltage, the original time from D8, and the delayed time in D2 when the repeated value occurs.
data = load(‘DatasSet2_Test.txt’); %my directory is different but it includes my name so it just calls the attached file
%Characterize columns
t1 = data(:,1)/1000; %convert time from ms to s
%convert from bits to V
resolution = 2^10-1;
%Data as assigned pairs *10^8 to transfer within the MeV to GeV range
D1 = (data(:,2)*5)/resolution*10^8; D2 = (data(:,3)*5)/resolution*10^8;
D3 = (data(:,4)*5)/resolution*10^8; D4 = (data(:,5)*5)/resolution*10^8;
D5 = (data(:,6)*5)/resolution*10^8; D6 = (data(:,7)*5)/resolution*10^8;
D7 = (data(:,8)*5)/resolution*10^8; D8 = (data(:,9)*5)/resolution*10^8; %all in V
c1 = D8(:)==D2 %finds same voltage indep of time occuring
x1values1 = t1(find(c1)); %Gives time of repeated values
r1usure1 = t1(find(intersect(D8,D2))); %checks for intersections as they don’t include delay
l1 = setdiff(x1values1, r1usure1); %Gives time of repeated values excluding intersections
This is the code I have so far, but it only checks for similar values and returns repeated time values instead of including the original time, and I’ve been struggling to find the associated voltages. I have also attached the file with the signals where the first column is time, column 3 is D2 in V, and column 9 is D8 in V.
This might not be well explained so I will answer questions as quickly as possible. Thank you in advance ! I have 2 datasets from a continuous signal that will display a voltage in 1 set of data (D8) and repeat that voltage in data set D2 after a randomized delay. I need to find the voltage and time these repetitions occur, but I’m unsure of how to do that.
My code finds these repetitions, removes where the 2 datasets intercept as there’s no delay going on there, and displays the time of the repetitions. I need the original voltage, the original time from D8, and the delayed time in D2 when the repeated value occurs.
data = load(‘DatasSet2_Test.txt’); %my directory is different but it includes my name so it just calls the attached file
%Characterize columns
t1 = data(:,1)/1000; %convert time from ms to s
%convert from bits to V
resolution = 2^10-1;
%Data as assigned pairs *10^8 to transfer within the MeV to GeV range
D1 = (data(:,2)*5)/resolution*10^8; D2 = (data(:,3)*5)/resolution*10^8;
D3 = (data(:,4)*5)/resolution*10^8; D4 = (data(:,5)*5)/resolution*10^8;
D5 = (data(:,6)*5)/resolution*10^8; D6 = (data(:,7)*5)/resolution*10^8;
D7 = (data(:,8)*5)/resolution*10^8; D8 = (data(:,9)*5)/resolution*10^8; %all in V
c1 = D8(:)==D2 %finds same voltage indep of time occuring
x1values1 = t1(find(c1)); %Gives time of repeated values
r1usure1 = t1(find(intersect(D8,D2))); %checks for intersections as they don’t include delay
l1 = setdiff(x1values1, r1usure1); %Gives time of repeated values excluding intersections
This is the code I have so far, but it only checks for similar values and returns repeated time values instead of including the original time, and I’ve been struggling to find the associated voltages. I have also attached the file with the signals where the first column is time, column 3 is D2 in V, and column 9 is D8 in V.
This might not be well explained so I will answer questions as quickly as possible. Thank you in advance ! indexing, find function, repeated values MATLAB Answers — New Questions
Very slow graphics when mouse pointer moves around a figure
I’ve got a little widget that animates a sequence of images by calling the "image()" function repeatedly with new images in a sequence. Normally the animation proceeds reasonably fast around 50-60 frames per second. However, if the mouse is in the figure window and moves around (not even clicking on anything), then the animation slows to a crawl (about 2-3 frames per second) as long as the mouse moves in the figure window. (See code at bottom for simple example to replicate this).
I’ve checked to ensure that the ‘WindowButtonMotionFcn’ figure callback is disabled (as are all other figure callbacks). I can’t find any other figure, axes or even image objects that might be triggered by mouse motion in the figure window.
If I run the profiler and compare results with and without the mouse moving around the figure window, I see the function:
ToolbarController.ToolbarController>@(e.d)obj.handleMouseMotion
(and its dependent functions ) is getting called thousands of times and is consuming 90% of the runtime when the mouse is moving around I tried turning off both the figure’s toolbar and the figure’s menu bar, e.g:
hFigure.ToolBar = ‘none’;
hFigure.MenuBar = ‘none’;
and that slightly alleviates the issue somewhat, but not much (perhaps 10-20% better) . Further, even with the toolbars turned off, the profiler still indicates that
ToolbarController.ToolbarController>@obj.handleMouseMotion
is still consuming 90% of the run time whenever the mouse is moving around. There also is the function
AxesToolbarButton.AxesToolbarButton>AxesToolbarButton.AxesToolbarButton
that is also getting called thousands of times and is consuming some of the time. So I also disable the AxesToolbar by:
axesTB = get(hAxes,’ToolBar’);
axesTB.visible = ‘off’;
axesTB.BusyAction = ‘cancel’;
(Unlike the figure toolbar, there doesn’t seem a setting to completely disable a AxesToolbar). Anyway, turning off the axesTB didn’t seem to help.
% This code can be used to illustrate the issue of slowly updating graphics.
% Run this, and then move the mouse around the figure window.
for loop=1:500
image(rand(300,300),’CDataMapping’,’scaled’);
drawnow;
end
%Clearing the axes with "cla" before the image() call doesn’t change the result. However, this version of the code is seemingly NOT impacted by this issue or very little:
hImg = image(rand(300,300),’CDataMapping’,’scaled’);
for loop=1:500
hImg.CData = rand(300,300);
drawnow;
end
In the latter case, the profiler say that the function
ToolbarController.ToolbarController>@(e.d)obj.handleMouseMotion
still gets called a whole bunch of times but it ends up only consuming about 15% of the runtime (not 90+%), and the animation proceeds at 50+ FPS. So there is something about the combination of a moving mouse and creating new objects (rather than changing attributes of existing objects) that seems to grind matlab graphics to a halt. While I clearly point out a workaround for my little example above, in the general case, such workarounds are not always possible. It seems odd that moving a mouse while drawing objects in a figure shouldn’t necessarily slow down things as much as it appears to do.
Thoughts appreciated.I’ve got a little widget that animates a sequence of images by calling the "image()" function repeatedly with new images in a sequence. Normally the animation proceeds reasonably fast around 50-60 frames per second. However, if the mouse is in the figure window and moves around (not even clicking on anything), then the animation slows to a crawl (about 2-3 frames per second) as long as the mouse moves in the figure window. (See code at bottom for simple example to replicate this).
I’ve checked to ensure that the ‘WindowButtonMotionFcn’ figure callback is disabled (as are all other figure callbacks). I can’t find any other figure, axes or even image objects that might be triggered by mouse motion in the figure window.
If I run the profiler and compare results with and without the mouse moving around the figure window, I see the function:
ToolbarController.ToolbarController>@(e.d)obj.handleMouseMotion
(and its dependent functions ) is getting called thousands of times and is consuming 90% of the runtime when the mouse is moving around I tried turning off both the figure’s toolbar and the figure’s menu bar, e.g:
hFigure.ToolBar = ‘none’;
hFigure.MenuBar = ‘none’;
and that slightly alleviates the issue somewhat, but not much (perhaps 10-20% better) . Further, even with the toolbars turned off, the profiler still indicates that
ToolbarController.ToolbarController>@obj.handleMouseMotion
is still consuming 90% of the run time whenever the mouse is moving around. There also is the function
AxesToolbarButton.AxesToolbarButton>AxesToolbarButton.AxesToolbarButton
that is also getting called thousands of times and is consuming some of the time. So I also disable the AxesToolbar by:
axesTB = get(hAxes,’ToolBar’);
axesTB.visible = ‘off’;
axesTB.BusyAction = ‘cancel’;
(Unlike the figure toolbar, there doesn’t seem a setting to completely disable a AxesToolbar). Anyway, turning off the axesTB didn’t seem to help.
% This code can be used to illustrate the issue of slowly updating graphics.
% Run this, and then move the mouse around the figure window.
for loop=1:500
image(rand(300,300),’CDataMapping’,’scaled’);
drawnow;
end
%Clearing the axes with "cla" before the image() call doesn’t change the result. However, this version of the code is seemingly NOT impacted by this issue or very little:
hImg = image(rand(300,300),’CDataMapping’,’scaled’);
for loop=1:500
hImg.CData = rand(300,300);
drawnow;
end
In the latter case, the profiler say that the function
ToolbarController.ToolbarController>@(e.d)obj.handleMouseMotion
still gets called a whole bunch of times but it ends up only consuming about 15% of the runtime (not 90+%), and the animation proceeds at 50+ FPS. So there is something about the combination of a moving mouse and creating new objects (rather than changing attributes of existing objects) that seems to grind matlab graphics to a halt. While I clearly point out a workaround for my little example above, in the general case, such workarounds are not always possible. It seems odd that moving a mouse while drawing objects in a figure shouldn’t necessarily slow down things as much as it appears to do.
Thoughts appreciated. I’ve got a little widget that animates a sequence of images by calling the "image()" function repeatedly with new images in a sequence. Normally the animation proceeds reasonably fast around 50-60 frames per second. However, if the mouse is in the figure window and moves around (not even clicking on anything), then the animation slows to a crawl (about 2-3 frames per second) as long as the mouse moves in the figure window. (See code at bottom for simple example to replicate this).
I’ve checked to ensure that the ‘WindowButtonMotionFcn’ figure callback is disabled (as are all other figure callbacks). I can’t find any other figure, axes or even image objects that might be triggered by mouse motion in the figure window.
If I run the profiler and compare results with and without the mouse moving around the figure window, I see the function:
ToolbarController.ToolbarController>@(e.d)obj.handleMouseMotion
(and its dependent functions ) is getting called thousands of times and is consuming 90% of the runtime when the mouse is moving around I tried turning off both the figure’s toolbar and the figure’s menu bar, e.g:
hFigure.ToolBar = ‘none’;
hFigure.MenuBar = ‘none’;
and that slightly alleviates the issue somewhat, but not much (perhaps 10-20% better) . Further, even with the toolbars turned off, the profiler still indicates that
ToolbarController.ToolbarController>@obj.handleMouseMotion
is still consuming 90% of the run time whenever the mouse is moving around. There also is the function
AxesToolbarButton.AxesToolbarButton>AxesToolbarButton.AxesToolbarButton
that is also getting called thousands of times and is consuming some of the time. So I also disable the AxesToolbar by:
axesTB = get(hAxes,’ToolBar’);
axesTB.visible = ‘off’;
axesTB.BusyAction = ‘cancel’;
(Unlike the figure toolbar, there doesn’t seem a setting to completely disable a AxesToolbar). Anyway, turning off the axesTB didn’t seem to help.
% This code can be used to illustrate the issue of slowly updating graphics.
% Run this, and then move the mouse around the figure window.
for loop=1:500
image(rand(300,300),’CDataMapping’,’scaled’);
drawnow;
end
%Clearing the axes with "cla" before the image() call doesn’t change the result. However, this version of the code is seemingly NOT impacted by this issue or very little:
hImg = image(rand(300,300),’CDataMapping’,’scaled’);
for loop=1:500
hImg.CData = rand(300,300);
drawnow;
end
In the latter case, the profiler say that the function
ToolbarController.ToolbarController>@(e.d)obj.handleMouseMotion
still gets called a whole bunch of times but it ends up only consuming about 15% of the runtime (not 90+%), and the animation proceeds at 50+ FPS. So there is something about the combination of a moving mouse and creating new objects (rather than changing attributes of existing objects) that seems to grind matlab graphics to a halt. While I clearly point out a workaround for my little example above, in the general case, such workarounds are not always possible. It seems odd that moving a mouse while drawing objects in a figure shouldn’t necessarily slow down things as much as it appears to do.
Thoughts appreciated. slow graphics, mouse motion MATLAB Answers — New Questions
Using the Microsoft Graph to Archive SharePoint Online Files
Archive and Unarchive Files with Graph API Calls
Recently, I covered how file-level archiving works for SharePoint Online and mentioned that the Microsoft Graph APIs for SharePoint support listing archived files and the archive and unarchive actions. In this article, I show how to use the APIs. A mixture of cmdlets from the Microsoft Graph PowerShell SDK (V2.35.1) and Graph requests are used because some of the functionality is not yet available through SDK cmdlets. This might change by the time you read this article.
First, let’s list the files in a drive (document library) to find any that might be archived. Two approaches are available: we can interrogate the drive or the underlying list (SharePoint Online is built from lists).
The Drive Approach to Finding Archived Files
This example shows how to create a Graph request against the beta drives API to find all items in the root of a drive. If you’re not familiar with using the Graph to navigate SharePoint Online drives, many of the concepts are covered in this article about creating a report of files in a document library. In this case, the code only retrieves files from the root folder and does not iterate through any child folders.
First, find the drive and root identifiers for the site we want to use and then build a request to find child items in the drive root:
$Drive = Get-MgSiteDefaultDrive -SiteId $Site.Id
$Root = Get-MgDriveRoot -DriveId $Drive.Id
$Uri = ("https://graph.microsoft.com/beta/drives/{0}/items/{1}/children" -f $Drive.Id, $Root.id)
[array]$Data = Invoke-MgGraphRequest -Uri $Uri -Method Get -OutputType PsObject | Select-Object -ExpandProperty Value
The data returned includes archived and unarchived files. It also includes folders. A client-side filter finds the archived files by looking for files with the archive status set to something other than null:
[array]$ArchivedFiles = $Data | Where-Object {$null -ne $_.file.mimetype -and $null -ne $_.file.archiveStatus}We can now list the files found by the filter:
$ArchivedFiles | Select-Object @{ n = 'Name'; e = { $_.Name }}, @{ n = "Archive Status"; e = {$_.File.ArchiveStatus}}, @{ n = 'DriveItemId'; e = { $_.Id }}
Figure 1 shows the result:

The List Approach to Finding Archived Files
Most people will list SharePoint Online files by navigating through a drive because it’s the simplest and most straightforward method. However, it’s possible to find archived files in the list used for the document library. The first step is to select the list for the document library:
$List = Get-MgSiteList -SiteId $Site.Id | Where-Object {$_.displayName -eq 'Documents'}The next step fetches the items from the list, expanding a hidden field called FileArchiveStatus:
[array]$Items = Get-MgSiteListItem -SiteId $Site.Id -ListId $List.Id -All -ExpandProperty "driveItem,fields(`$select=_FileArchiveStatus)"
Now we can find items where a value exists in the FileArchiveStatus field:
[array]$ArchivedItems = $Items | Where-Object {$_.Fields.AdditionalProperties['_FileArchiveStatus']}Examining the list items won’t tell us much, so to expose the information, we go through the array of filtered items and extract and format the name, archive status, and identifier properties:
$ArchivedItems | Select-Object @{ n = 'Name'; e = { $_.DriveItem.Name } },
@{ n = 'Archive Status'; e = { $_.Fields.AdditionalProperties['_FileArchiveStatus'] } },@{ n = 'DriveItemId'; e = { $_.DriveItem.Id }
}
Name Archive Status DriveItemId
---- ------------- -----------
Travel Plans and Commitments.docx fullyArchived 01YRXQVKDSUUG6CT3SMVAKZKE7EJTW4PNI
ESPC19-Speaker-Information.pdf fullyArchived 01YRXQVKE7UNT6DCIXBVC35KGLVSYRHHDY
Ultra Confidential 12 Feb 2022.docx fullyArchived 01YRXQVKGDUZ4PKSH4HFGIQ2DOG3C7BOWV
TasksTemporary_.xlsx fullyArchived 01YRXQVKAWGQT6OY4FXRBJ6SZ7HUAOOMIO
The list approach works, but the drive method is easier to understand.
Archive Drive Items
Now that we know how to list archived files, let’s move on to how to use the archive and unarchive actions. One of the advantages of file-level archiving is that it supports selective archival of files that you want to keep but don’t want people to use. As an example, let’s find files that have not been modified in over two years and archive those files.
First, we set a date to check against use the drive method to find the unarchived files.
$CheckDate = (Get-Date).AddDays(-730)
[array]$UnarchivedFiles = $Data | Where-Object {$null -ne $_.file.mimetype -and $null -eq $_.file.archiveStatus}
A simple loop through the set of unarchived files finds any that haven’t been modified for over two years. If any such files are found, we run an archive request:
ForEach ($File in $UnarchivedFiles) {
If ($File.LastModifiedDateTime -le $CheckDate) {
Write-Host "Archiving" $File.Name
$Uri = ("https://graph.microsoft.com/beta/drives/{0}/items/{1}/archive" -f $Drive.Id, $File.Id)
Try {
Invoke-MgGraphRequest -Method POST -Uri $Uri -OutputType PSobject -ErrorAction Stop
Write-Host ("File {0} is now archived" -f $File.Name) -ForegroundColor Yellow
} Catch {
Write-Host ("Failed to archive file {0}" -f $File.Name) -ForegroundColor Red
}
}
}
Unarchive a Drive Item
We might make a mistake and need to unarchive a file. Unarchiving a file can be immediate, or it can take up to 24 hours before Microsoft 365 Archive can rehydrate the file by fetching it back from cold storage. In either case, the same code works. Here’s how to run an unarchive request using a drive item identifier that’s been chosen from a list of archived files:
$DriveItemID = '01YRXQVKE7UNT6DCIXBVC35KGLVSYRHHDY'
$Uri = ("https://graph.microsoft.com/beta/drives/{0}/items/{1}/unarchive" -f $Drive.Id, $DriveItemId)
Try {
$Response = Invoke-MgGraphRequest -Method POST -Uri $Uri -OutputType PSobject -ErrorAction Stop
} Catch {
Write-Host "Failure to unarchive file"
}
If the file is reactivated instantly, no response is returned. If reactivation requires rehydration, the response includes:
{
"archiveStatus": "reactivating"
}
Reporting the Storage Used for File-level Archiving
As a bonus, you might like to report the storage used for file-level archiving in a site. SharePoint Online makes the information available as a property returned by the Get-SPOSite cmdlet. For example:
$SiteId = "https://office365itpros.sharepoint.com/sites/confidentialstuff"
Get-SPOSite -Identity $SiteId | Select-Object @{ n = 'Archived Files Disk Space (MB)'; e = { $_.ArchivedFileDiskUsed/1MB } }
Archived Files Disk Space (MB)
------------------------------
16.65
Dealing with file-level archiving of SharePoint Online files through the Graph APIs isn’t difficult. At least, it’s not once the technique is explained.
Need help to write and manage PowerShell scripts for Microsoft 365, including Azure Automation runbooks? 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.
Why is the LAPLACE command in the Symbolic Toolbox able to handle ABS(t+1) but unable to process ABS(t-1)?
I am using the following commands:
syms t s
laplace(abs(t))
ans =
1/s^2
laplace(abs(t+1))
ans =
1/s^2+1/s
laplace(abs(t-1))
ans =
laplace(abs(t-1),t,s)I am using the following commands:
syms t s
laplace(abs(t))
ans =
1/s^2
laplace(abs(t+1))
ans =
1/s^2+1/s
laplace(abs(t-1))
ans =
laplace(abs(t-1),t,s) I am using the following commands:
syms t s
laplace(abs(t))
ans =
1/s^2
laplace(abs(t+1))
ans =
1/s^2+1/s
laplace(abs(t-1))
ans =
laplace(abs(t-1),t,s) laplace, symbolic, absolute MATLAB Answers — New Questions
Create random points in a rectangular domain, but with minimum separation distance
Hello,
I am not a regular user of this program. Hence this query.
I am interested to create random points in a 2D rectangular space, to start with, a uniform distribution. I know how to do this. However, I want to ensure that each of these points are separated by a certain minimum distance.
Can anyone help me with the script please.
Thank you.
SureshHello,
I am not a regular user of this program. Hence this query.
I am interested to create random points in a 2D rectangular space, to start with, a uniform distribution. I know how to do this. However, I want to ensure that each of these points are separated by a certain minimum distance.
Can anyone help me with the script please.
Thank you.
Suresh Hello,
I am not a regular user of this program. Hence this query.
I am interested to create random points in a 2D rectangular space, to start with, a uniform distribution. I know how to do this. However, I want to ensure that each of these points are separated by a certain minimum distance.
Can anyone help me with the script please.
Thank you.
Suresh random points, 2d space, minimum separation distance MATLAB Answers — New Questions
Why am I unable to install R2026a or newer on my macOS Intel?
I have a license to install the latest release of MATLAB but on the MathWorks Downloads page, the MathWorks Product Installer for Intel Processor is not available for R2026a. Why am I unable to install MATLAB on my macOS Intel?I have a license to install the latest release of MATLAB but on the MathWorks Downloads page, the MathWorks Product Installer for Intel Processor is not available for R2026a. Why am I unable to install MATLAB on my macOS Intel? I have a license to install the latest release of MATLAB but on the MathWorks Downloads page, the MathWorks Product Installer for Intel Processor is not available for R2026a. Why am I unable to install MATLAB on my macOS Intel? MATLAB Answers — New Questions
Why is it showing “Incorrect” for a Task in “Create Animated Plots with MATLAB” course?
I was doing this task in the new "Create Animated Plots with MATLAB" course. But whenever I ran the code, it showed Incorrect. On closer inspection, I saw that when I ran it manually, the animation ran till x = 7.1 but when the code is executed on clicking "Submit", the animation runs till x is a little less than 7. Why is this happening and how can I complete this task?
Code:
for idx = 1:numel(y)
scatter(x(idx),y(idx),40,’filled’)
drawnow
end
Screenshot:I was doing this task in the new "Create Animated Plots with MATLAB" course. But whenever I ran the code, it showed Incorrect. On closer inspection, I saw that when I ran it manually, the animation ran till x = 7.1 but when the code is executed on clicking "Submit", the animation runs till x is a little less than 7. Why is this happening and how can I complete this task?
Code:
for idx = 1:numel(y)
scatter(x(idx),y(idx),40,’filled’)
drawnow
end
Screenshot: I was doing this task in the new "Create Animated Plots with MATLAB" course. But whenever I ran the code, it showed Incorrect. On closer inspection, I saw that when I ran it manually, the animation ran till x = 7.1 but when the code is executed on clicking "Submit", the animation runs till x is a little less than 7. Why is this happening and how can I complete this task?
Code:
for idx = 1:numel(y)
scatter(x(idx),y(idx),40,’filled’)
drawnow
end
Screenshot: animation, plot, drawnow, self-paced online courses MATLAB Answers — New Questions
Teams Migration for New Private Channels Stalls
Why the Private Channels Migration Might Not Have Finished in Your Tenant
Last year, I wrote about the second generation of Teams private channels and explained the technical changes made by Microsoft to enable features like a channel calendar. At the time, Microsoft planned to begin an automatic migration process to convert existing private channels to the new infrastructure in late September 2025. The intention was to have the migration complete for all tenants sometime in December 2025.
Alas, plans and timings don’t always work out. The migration started late and isn’t yet complete. I didn’t realize this until a reader contacted me to ask why they couldn’t add the channel calendar app to a private channel six months after the migration should have finished. This provoked some investigation and here’s what I discovered.
Opening the Migration Black Box
First, it’s important to say that the migration is a huge exercise involving hundreds of thousands of tenants. Teams has over 320 million monthly active users (the last official number from October 2023) and private channels have been around since 2019. You can imagine how many private channels might be in use today, serving their purpose of providing a secure space within a team for a subset of team members to discuss sensitive topics (Figure 1).

The second thing to say is that the migration is complete in many tenants. However, because the migration is a black box that emits no information about its current status unless you go looking, administrators are probably unaware of the current state of the migrate in their tenant.
The only way to discover the state of the private channel migration for a tenant is to run the Get-TenantPrivateChannelMigrationStatus cmdlet from the Microsoft Teams PowerShell module (use a recent version). If the cmdlet reports a “Completed” status, you’re all set to use the new private channel features like being able to add the channel calendar app.
Discovering a Stalled Migration Process
I knew about the cmdlet, but it was not yet available when I wrote the original article, so I had never used it. The cmdlet reported a “RequiresAdminAttention” status. It’s never good when an administrator has to step in, especially when the migration start timestamp was from February 11, 2026. In other words, the automatic migration process started three months ago and had remained in an incomplete status since. Because Teams doesn’t highlight the problem in any way, I was in a state of blissful ignorance.
I took some code from the documentation to interpret the cmdlet output:
$result = Get-TenantPrivateChannelMigrationStatus
$details = $result.Details | ConvertFrom-Json
Write-Host "Total: $($details.totalChannels), Migrated: $($details.migratedChannels), Failed: $($details.failedChannels), Ownerless: $($details.ownerlessChannels)"
Total: 21, Migrated: 16, Failed: 0, Ownerless: 4
if ($details.ownerlessChannelsDetails) { $details.ownerlessChannelsDetails | Format-Table channelThreadId, teamId }
channelThreadId teamId
--------------- ------
19:1ea9bea35c214f2dace344f86c956f56@thread.skype 12d57049-89ce-424a-bc31-fa7b3d2699cd
19:2ab7651712104884968497684b0bf23a@thread.skype eba86b74-aef7-4a6b-aa8a-b9769e97716e
19:c781707005e14e83b2c3308cbc929706@thread.skype bc9f83be-f866-465c-9507-5998ba623c4f
19:cfbb92756f2b460685ff785b1a8bc043@thread.skype eba86b74-aef7-4a6b-aa8a-b9769e97716e
Sixteen channels had migrated successfully. Four had no owners, and there’s one other channel noted as a “remaining channel” for which the cmdlet offers no other details.
The solution for the ownerless channels is either to remove the channel (on the basis that it’s not in use) or assign a new owner. I chose to assign new owners and did so a week ago. I imagined that the migration would restart once Teams noticed that the ownerless channels had been dealt with, but this hasn’t happened so far. Even worse, there’s no way an administrator can force the migration process to recommence. It’s a black box after all.
An Update for MC1134737
Then I noticed an update for message center notification MC1134737 posted on 30 April 2026, which says:
“Migration of channels is complete with a few pending channels for which we have shared more information here for admin remediation. Admins must take action within 30 days, by June 5th, 2026, to remediate specific private channel configurations that are currently not eligible for migration. There are two impacted scenarios.
- The first includes private channels with no users, where the roster is empty and the channel is inaccessible to any tenant user.
- The second includes private channels that contain only guest users and no in-tenant owners. In both cases, these channels cannot be migrated in their current state.
If no action is taken by June 5th 2026, impacted channels will be soft deleted and remain recoverable for 30 days. After this period, they will be permanently deleted.”
It is awfully easy to miss an updated message center notification, but the message here is clear. Run the Get-TenantPrivateChannelMigrationStatus cmdlet and add owners to the private channels that are highlighted as being ownerless or they will disappear after June 5.
One Last Thing
The Get-TenantPrivateChannelMigrationStatus cmdlet is good at highlighting ownerless channels. However, it doesn’t reveal anything about successfully migrated channels or the one “remaining” private channel that is neither migrated nor ownerless.
To solve that problem, I ran a script from a 2022 article to report the membership of private channels and discovered that the “remaining” channel belonged to an archived team. I amended the script so that it now reports private channels belonging to archived teams. You can download the script from the Office 365 for IT Pros GitHub respository.
To resolve the issue, it’s possible to unarchive the team and add an owner to the private channel. Here’s how to do the job with PowerShell:
# Microsoft 365 Group Id for the team to unarchive $GroupId = "12d57049-89ce-424a-bc31-fa7b3d2699cd" Set-TeamArchivedState -GroupId $GroupId -Archived:$false # Add new member to the team Add-TeamUser -GroupId $GroupId -User Lotte.Vetler@office365itpros.com # Add member to the channel Add-TeamChannelUser -GroupId $GroupId -DisplayName "Sales Talk" -User Lotte.Vetler@office365itpros.com # Add member as a private channel owner so that the channel has at least one owner Add-TeamChannelUser -GroupId $GroupId -DisplayName "Sales Talk" -User Lotte.Vetler@office365itpros.com -Role Owner
Black box migrations are fine when everything works as planned. They’re not so good when problems occur. Some administrators are probably in the same blissfully unaware state that I was about the state of migration in their tenant. If your Microsoft 365 tenant uses private channels, it’s time to run the Get-TenantPrivateChannelMigrationStatus cmdlet to check the status of your private channel migration. Even after addressing the issues with ownerless and archived channels, the migration for private channels in my tenant remains stalled. But there’s always hope…
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.
On ramp wont work
I have Matlab and have logged in using my mathworks acc. but when I try to access onramp to learn how to use Matlab it says "there are no MATLAB resources available". I’m not sure what to do. It keeps retrying every 5-10 seconds or so, but to no avail.I have Matlab and have logged in using my mathworks acc. but when I try to access onramp to learn how to use Matlab it says "there are no MATLAB resources available". I’m not sure what to do. It keeps retrying every 5-10 seconds or so, but to no avail. I have Matlab and have logged in using my mathworks acc. but when I try to access onramp to learn how to use Matlab it says "there are no MATLAB resources available". I’m not sure what to do. It keeps retrying every 5-10 seconds or so, but to no avail. onramp, tutorials, courses, online_training, distance_learning MATLAB Answers — New Questions
When using eigen faces to reconstruct images final image comes out fuzzy even when using all eigen faces
I am trying to reconstruct these images using eigen faces but keep having the same issue.
clear all, close all, clc
r1 = im2double(im2gray(imread(‘r1-168×192.png’)),’indexed’);
r2 = im2double(im2gray(imread(‘r2-168×192.jpg’)),’indexed’);
r3 = im2double(im2gray(imread(‘r3-168×192.jpg’)),’indexed’);
r4 = im2double(im2gray(imread(‘r4-168×192.jpg’)),’indexed’);
r5 = im2double(im2gray(imread(‘r5-168×192.jpg’)),’indexed’);
r6 = im2double(im2gray(imread(‘r6-168×192.jpg’)),’indexed’);
r7 = im2double(im2gray(imread(‘r7-168×192.jpg’)),’indexed’);
r8 = im2double(im2gray(imread(‘r8-168×192.jpg’)),’indexed’);
r9 = im2double(im2gray(imread(‘r9-168×192.jpg’)),’indexed’);
r10 = im2double(im2gray(imread(‘r10-168×192.jpg’)),’indexed’);
m1 = im2double(rgb2gray(imread(‘m1-168×192.jpg’)),’indexed’);
m2 = im2double(im2gray(imread(‘m2-168×192.jpg’)),’indexed’);
m3 = im2double(im2gray(imread(‘m3-168×192.jpg’)),’indexed’);
m4 = im2double(im2gray(imread(‘m4-168×192.jpg’)),’indexed’);
m5 = im2double(im2gray(imread(‘m5-168×192.jpg’)),’indexed’);
m6 = im2double(im2gray(imread(‘m6-168×192.jpg’)),’indexed’);
m7 = im2double(im2gray(imread(‘m7-168×192.jpg’)),’indexed’);
m8 = im2double(im2gray(imread(‘m8-168×192.jpg’)),’indexed’);
m9 = im2double(im2gray(imread(‘m9-168×192.jpg’)),’indexed’);
m10 = im2double(im2gray(imread(‘m10-168×192.jpg’)),’indexed’);
load allFaces.mat % Load data file of faces
r1 = reshape(r1,32256,1);
r2 = reshape(r2,32256,1);
r3 = reshape(r3,32256,1);
r4 = reshape(r4,32256,1);
r5 = reshape(r5,32256,1);
r6 = reshape(r6,32256,1);
r7 = reshape(r7,32256,1);
r8 = reshape(r8,32256,1);
r9 = reshape(r9,32256,1);
r10 = reshape(r10,32256,1);
m1 = reshape(m1,32256,1);
m2 = reshape(m2,32256,1);
m3 = reshape(m3,32256,1);
m4 = reshape(m4,32256,1);
m5 = reshape(m5,32256,1);
m6 = reshape(m6,32256,1);
m7 = reshape(m7,32256,1);
m8 = reshape(m8,32256,1);
m9 = reshape(m9,32256,1);
m10 = reshape(m10,32256,1);
Mfaces = [r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 m1 m2 m3 m4 m5 m6 m7 m8 m9 m10];
%% Use the first 36 people for training data
trainingFaces = faces(:,1:sum(nfaces(1:38)));
avgFace = mean(trainingFaces,2); % size n*m by 1;
% compute eigenfaces on mean-subtracted training data
X = trainingFaces-avgFace*ones(1,size(trainingFaces,2));
[U,S,V] = svd(X,’econ’);
figure(3) % Open new figure to plot average face
axes(‘position’,[0 0 1 1]), axis off
imagesc(reshape(avgFace,n,m)), colormap gray
im = m6;
figure(6) % Open new figure to plot reconstructed image
subplot(2,4,1), imagesc(reshape(im,n,m)), colormap gray
title(‘Person #37 Original’)
%% Plot first 64 eigenfaces
count = 1;
testFaceMS = im – avgFace ;
for r=[400 800 2282] % Error in original code; 50 not 0 between 25 and 100
count=count+1;
subplot(2,4,count)
reconFace = avgFace + (U(:,1:r)*(U(:,1:r)’*testFaceMS));
imagesc(reshape(reconFace,n,m)), colormap gray % Plot reconstructed face
title([‘r=’,num2str(r,’%d’)]);
pause(0.1)
endI am trying to reconstruct these images using eigen faces but keep having the same issue.
clear all, close all, clc
r1 = im2double(im2gray(imread(‘r1-168×192.png’)),’indexed’);
r2 = im2double(im2gray(imread(‘r2-168×192.jpg’)),’indexed’);
r3 = im2double(im2gray(imread(‘r3-168×192.jpg’)),’indexed’);
r4 = im2double(im2gray(imread(‘r4-168×192.jpg’)),’indexed’);
r5 = im2double(im2gray(imread(‘r5-168×192.jpg’)),’indexed’);
r6 = im2double(im2gray(imread(‘r6-168×192.jpg’)),’indexed’);
r7 = im2double(im2gray(imread(‘r7-168×192.jpg’)),’indexed’);
r8 = im2double(im2gray(imread(‘r8-168×192.jpg’)),’indexed’);
r9 = im2double(im2gray(imread(‘r9-168×192.jpg’)),’indexed’);
r10 = im2double(im2gray(imread(‘r10-168×192.jpg’)),’indexed’);
m1 = im2double(rgb2gray(imread(‘m1-168×192.jpg’)),’indexed’);
m2 = im2double(im2gray(imread(‘m2-168×192.jpg’)),’indexed’);
m3 = im2double(im2gray(imread(‘m3-168×192.jpg’)),’indexed’);
m4 = im2double(im2gray(imread(‘m4-168×192.jpg’)),’indexed’);
m5 = im2double(im2gray(imread(‘m5-168×192.jpg’)),’indexed’);
m6 = im2double(im2gray(imread(‘m6-168×192.jpg’)),’indexed’);
m7 = im2double(im2gray(imread(‘m7-168×192.jpg’)),’indexed’);
m8 = im2double(im2gray(imread(‘m8-168×192.jpg’)),’indexed’);
m9 = im2double(im2gray(imread(‘m9-168×192.jpg’)),’indexed’);
m10 = im2double(im2gray(imread(‘m10-168×192.jpg’)),’indexed’);
load allFaces.mat % Load data file of faces
r1 = reshape(r1,32256,1);
r2 = reshape(r2,32256,1);
r3 = reshape(r3,32256,1);
r4 = reshape(r4,32256,1);
r5 = reshape(r5,32256,1);
r6 = reshape(r6,32256,1);
r7 = reshape(r7,32256,1);
r8 = reshape(r8,32256,1);
r9 = reshape(r9,32256,1);
r10 = reshape(r10,32256,1);
m1 = reshape(m1,32256,1);
m2 = reshape(m2,32256,1);
m3 = reshape(m3,32256,1);
m4 = reshape(m4,32256,1);
m5 = reshape(m5,32256,1);
m6 = reshape(m6,32256,1);
m7 = reshape(m7,32256,1);
m8 = reshape(m8,32256,1);
m9 = reshape(m9,32256,1);
m10 = reshape(m10,32256,1);
Mfaces = [r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 m1 m2 m3 m4 m5 m6 m7 m8 m9 m10];
%% Use the first 36 people for training data
trainingFaces = faces(:,1:sum(nfaces(1:38)));
avgFace = mean(trainingFaces,2); % size n*m by 1;
% compute eigenfaces on mean-subtracted training data
X = trainingFaces-avgFace*ones(1,size(trainingFaces,2));
[U,S,V] = svd(X,’econ’);
figure(3) % Open new figure to plot average face
axes(‘position’,[0 0 1 1]), axis off
imagesc(reshape(avgFace,n,m)), colormap gray
im = m6;
figure(6) % Open new figure to plot reconstructed image
subplot(2,4,1), imagesc(reshape(im,n,m)), colormap gray
title(‘Person #37 Original’)
%% Plot first 64 eigenfaces
count = 1;
testFaceMS = im – avgFace ;
for r=[400 800 2282] % Error in original code; 50 not 0 between 25 and 100
count=count+1;
subplot(2,4,count)
reconFace = avgFace + (U(:,1:r)*(U(:,1:r)’*testFaceMS));
imagesc(reshape(reconFace,n,m)), colormap gray % Plot reconstructed face
title([‘r=’,num2str(r,’%d’)]);
pause(0.1)
end I am trying to reconstruct these images using eigen faces but keep having the same issue.
clear all, close all, clc
r1 = im2double(im2gray(imread(‘r1-168×192.png’)),’indexed’);
r2 = im2double(im2gray(imread(‘r2-168×192.jpg’)),’indexed’);
r3 = im2double(im2gray(imread(‘r3-168×192.jpg’)),’indexed’);
r4 = im2double(im2gray(imread(‘r4-168×192.jpg’)),’indexed’);
r5 = im2double(im2gray(imread(‘r5-168×192.jpg’)),’indexed’);
r6 = im2double(im2gray(imread(‘r6-168×192.jpg’)),’indexed’);
r7 = im2double(im2gray(imread(‘r7-168×192.jpg’)),’indexed’);
r8 = im2double(im2gray(imread(‘r8-168×192.jpg’)),’indexed’);
r9 = im2double(im2gray(imread(‘r9-168×192.jpg’)),’indexed’);
r10 = im2double(im2gray(imread(‘r10-168×192.jpg’)),’indexed’);
m1 = im2double(rgb2gray(imread(‘m1-168×192.jpg’)),’indexed’);
m2 = im2double(im2gray(imread(‘m2-168×192.jpg’)),’indexed’);
m3 = im2double(im2gray(imread(‘m3-168×192.jpg’)),’indexed’);
m4 = im2double(im2gray(imread(‘m4-168×192.jpg’)),’indexed’);
m5 = im2double(im2gray(imread(‘m5-168×192.jpg’)),’indexed’);
m6 = im2double(im2gray(imread(‘m6-168×192.jpg’)),’indexed’);
m7 = im2double(im2gray(imread(‘m7-168×192.jpg’)),’indexed’);
m8 = im2double(im2gray(imread(‘m8-168×192.jpg’)),’indexed’);
m9 = im2double(im2gray(imread(‘m9-168×192.jpg’)),’indexed’);
m10 = im2double(im2gray(imread(‘m10-168×192.jpg’)),’indexed’);
load allFaces.mat % Load data file of faces
r1 = reshape(r1,32256,1);
r2 = reshape(r2,32256,1);
r3 = reshape(r3,32256,1);
r4 = reshape(r4,32256,1);
r5 = reshape(r5,32256,1);
r6 = reshape(r6,32256,1);
r7 = reshape(r7,32256,1);
r8 = reshape(r8,32256,1);
r9 = reshape(r9,32256,1);
r10 = reshape(r10,32256,1);
m1 = reshape(m1,32256,1);
m2 = reshape(m2,32256,1);
m3 = reshape(m3,32256,1);
m4 = reshape(m4,32256,1);
m5 = reshape(m5,32256,1);
m6 = reshape(m6,32256,1);
m7 = reshape(m7,32256,1);
m8 = reshape(m8,32256,1);
m9 = reshape(m9,32256,1);
m10 = reshape(m10,32256,1);
Mfaces = [r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 m1 m2 m3 m4 m5 m6 m7 m8 m9 m10];
%% Use the first 36 people for training data
trainingFaces = faces(:,1:sum(nfaces(1:38)));
avgFace = mean(trainingFaces,2); % size n*m by 1;
% compute eigenfaces on mean-subtracted training data
X = trainingFaces-avgFace*ones(1,size(trainingFaces,2));
[U,S,V] = svd(X,’econ’);
figure(3) % Open new figure to plot average face
axes(‘position’,[0 0 1 1]), axis off
imagesc(reshape(avgFace,n,m)), colormap gray
im = m6;
figure(6) % Open new figure to plot reconstructed image
subplot(2,4,1), imagesc(reshape(im,n,m)), colormap gray
title(‘Person #37 Original’)
%% Plot first 64 eigenfaces
count = 1;
testFaceMS = im – avgFace ;
for r=[400 800 2282] % Error in original code; 50 not 0 between 25 and 100
count=count+1;
subplot(2,4,count)
reconFace = avgFace + (U(:,1:r)*(U(:,1:r)’*testFaceMS));
imagesc(reshape(reconFace,n,m)), colormap gray % Plot reconstructed face
title([‘r=’,num2str(r,’%d’)]);
pause(0.1)
end image processing MATLAB Answers — New Questions
download link for MATLAB R2012b full version
can you please provide me the link for MATLAB R2012b full version. each time i try to download, it says tat i need to be associated with a license. i give my license number and product activation key. but it is showing error. it asks to give (-) in the activation key where i am providing (-) in between the key. but still not working. so i thought there might be some other link for downloading the full version software. please let me know about the linkcan you please provide me the link for MATLAB R2012b full version. each time i try to download, it says tat i need to be associated with a license. i give my license number and product activation key. but it is showing error. it asks to give (-) in the activation key where i am providing (-) in between the key. but still not working. so i thought there might be some other link for downloading the full version software. please let me know about the link can you please provide me the link for MATLAB R2012b full version. each time i try to download, it says tat i need to be associated with a license. i give my license number and product activation key. but it is showing error. it asks to give (-) in the activation key where i am providing (-) in between the key. but still not working. so i thought there might be some other link for downloading the full version software. please let me know about the link downloading, matlab r2012b, full version, activation key, license MATLAB Answers — New Questions
Unable to set breakpoint
Every time I try to set a breakpoint, the red circle comes up as long as I keep ‘holding’ the click, but then when I ‘release’ the click, it goes away. I used to be able to set breakpoints normally but now I can’tEvery time I try to set a breakpoint, the red circle comes up as long as I keep ‘holding’ the click, but then when I ‘release’ the click, it goes away. I used to be able to set breakpoints normally but now I can’t Every time I try to set a breakpoint, the red circle comes up as long as I keep ‘holding’ the click, but then when I ‘release’ the click, it goes away. I used to be able to set breakpoints normally but now I can’t breakpoint, technical MATLAB Answers — New Questions
Mathwork Licensing Error 5005
Post Content Post Content erroe 5005 MATLAB Answers — New Questions
Is there a way to insert a common ylabel to secondary axes in a tiled layout?
Hi everyone,
Dabbling a bit in MATLAB for the past year, mostly for data analysis. I am currently using version 2020 a and recently started enjoying the tiledlayout functionality. I was wondering, if there is a way to insert a shared y-axis title for secondary y-axes? For example, in this code:
t = tiledlayout(2,2);
for i = 1:4
f = figure(1);
ax = nexttile;
yyaxis left
x = (1:10);
y = rand(1,10)*100;
plot(x,y)
yyaxis right
plot(x,sin(y))
end
xlabel(t,’X’)
ylabel(t,’Y’)
I would like to insert a ylabel for the right axes (lets say ‘Y2’) that is ‘shared’ just as ‘Y’ is for the left axes. I haven’t found a solution that worked for me yet, all information I could find would either relate to tiled layouts or two y axes, I haven’t found something that combines the two.
I hope you understand my problem, any help is highly appreciated.Hi everyone,
Dabbling a bit in MATLAB for the past year, mostly for data analysis. I am currently using version 2020 a and recently started enjoying the tiledlayout functionality. I was wondering, if there is a way to insert a shared y-axis title for secondary y-axes? For example, in this code:
t = tiledlayout(2,2);
for i = 1:4
f = figure(1);
ax = nexttile;
yyaxis left
x = (1:10);
y = rand(1,10)*100;
plot(x,y)
yyaxis right
plot(x,sin(y))
end
xlabel(t,’X’)
ylabel(t,’Y’)
I would like to insert a ylabel for the right axes (lets say ‘Y2’) that is ‘shared’ just as ‘Y’ is for the left axes. I haven’t found a solution that worked for me yet, all information I could find would either relate to tiled layouts or two y axes, I haven’t found something that combines the two.
I hope you understand my problem, any help is highly appreciated. Hi everyone,
Dabbling a bit in MATLAB for the past year, mostly for data analysis. I am currently using version 2020 a and recently started enjoying the tiledlayout functionality. I was wondering, if there is a way to insert a shared y-axis title for secondary y-axes? For example, in this code:
t = tiledlayout(2,2);
for i = 1:4
f = figure(1);
ax = nexttile;
yyaxis left
x = (1:10);
y = rand(1,10)*100;
plot(x,y)
yyaxis right
plot(x,sin(y))
end
xlabel(t,’X’)
ylabel(t,’Y’)
I would like to insert a ylabel for the right axes (lets say ‘Y2’) that is ‘shared’ just as ‘Y’ is for the left axes. I haven’t found a solution that worked for me yet, all information I could find would either relate to tiled layouts or two y axes, I haven’t found something that combines the two.
I hope you understand my problem, any help is highly appreciated. tiledlayout, two y-axes, y-labels MATLAB Answers — New Questions
project file is not being updated
The complier project file is not being updated. When I exit Matlab and re-enter, opening the project file all setting are lost. Is there some setting to enable auto updates of the project file?The complier project file is not being updated. When I exit Matlab and re-enter, opening the project file all setting are lost. Is there some setting to enable auto updates of the project file? The complier project file is not being updated. When I exit Matlab and re-enter, opening the project file all setting are lost. Is there some setting to enable auto updates of the project file? project file MATLAB Answers — New Questions









