Month: January 2026
Why t_tide prediction is offseted?
Hi, i’m trying to use t_tide_v1.4beta using matlab R2016a in 2 ways like in t_tide example but the result of the harmonic constants is not similar and the prediction is not similar between prediction also offseted to the observation data. Help me please. Herewith the code and the data that I use.
Code:
clear
clc
%format LONGG
%load t_example
% load data excel
data = readtable(‘D:TestT_Tidet_tide_v1.4betakmna_wnan.xlsx’);
time_axis = datetime(data.waktu);
data_time = datenum(time_axis);
obs_value = data.ukuran;
% Analisis Harminik
%—————————————————————————
% Way 1
% analisys
[NAME,FREQ,TIDECON,XOUT] = t_tide(obs_value,’interval’,1,’start’,data_time(1),’latitude’,-3.66295,’synthesis’,1);
% prediction
YOUT=t_predic(data_time,NAME,FREQ,TIDECON,’latitude’,-3.66295,’synthesis’,1);
% Way 2
% analisys
[HarKons,XOUT2]=t_tide(obs_value,’interval’,1,’start’,data_time(1),’latitude’,-3.66295,’rayleigh’,1,’synthesis’,1);
% prediction
% YOUT=T_PREDIC(TIM,TIDESTRUC,…)
YOUTHarKons1=t_predic(data_time,HarKons,’latitude’,-3.66295,’synthesis’,1);
YOUTHarKons2=t_predic(data_time,HarKons);
%% visualisasi
figure(1)
plot(time_axis,obs_value,’b’,’LineWidth’,1.5); hold on
plot(time_axis,XOUT,’r–‘,’LineWidth’,1.5); hold on
plot(time_axis,YOUT,’c.’,’LineWidth’,1.5); hold on
plot(time_axis,YOUTHarKons1,’kx’,’LineWidth’,1.5); hold on
plot(time_axis,YOUTHarKons2,’ko’,’LineWidth’,1.5); hold on
title(‘Tidal Elevation’,’FontSize’,14,’fontWeight’,’b’)
legend({‘obs_value’, ‘XOUT’, ‘YOUT’, ‘YOUTHarKons1’, ‘YOUTHarKons2′},’FontSize’, 10, ‘FontWeight’, ‘bold’, ‘Location’, ‘northeastoutside’);
xlabel(‘Time’,’FontSize’,14,’FontWeight’,’b’)
ylabel(‘Elevation (m)’,’FontSize’,14,’FontWeight’,’b’)
% Format sumbu X agar menampilkan tanggal/waktu
% datetick(‘x’, ‘dd/mm/yyyy HH:MM:ss’, ‘keepticks’, ‘keeplimits’)
grid on
Tidal graph obs_value and prediction:
Data:Hi, i’m trying to use t_tide_v1.4beta using matlab R2016a in 2 ways like in t_tide example but the result of the harmonic constants is not similar and the prediction is not similar between prediction also offseted to the observation data. Help me please. Herewith the code and the data that I use.
Code:
clear
clc
%format LONGG
%load t_example
% load data excel
data = readtable(‘D:TestT_Tidet_tide_v1.4betakmna_wnan.xlsx’);
time_axis = datetime(data.waktu);
data_time = datenum(time_axis);
obs_value = data.ukuran;
% Analisis Harminik
%—————————————————————————
% Way 1
% analisys
[NAME,FREQ,TIDECON,XOUT] = t_tide(obs_value,’interval’,1,’start’,data_time(1),’latitude’,-3.66295,’synthesis’,1);
% prediction
YOUT=t_predic(data_time,NAME,FREQ,TIDECON,’latitude’,-3.66295,’synthesis’,1);
% Way 2
% analisys
[HarKons,XOUT2]=t_tide(obs_value,’interval’,1,’start’,data_time(1),’latitude’,-3.66295,’rayleigh’,1,’synthesis’,1);
% prediction
% YOUT=T_PREDIC(TIM,TIDESTRUC,…)
YOUTHarKons1=t_predic(data_time,HarKons,’latitude’,-3.66295,’synthesis’,1);
YOUTHarKons2=t_predic(data_time,HarKons);
%% visualisasi
figure(1)
plot(time_axis,obs_value,’b’,’LineWidth’,1.5); hold on
plot(time_axis,XOUT,’r–‘,’LineWidth’,1.5); hold on
plot(time_axis,YOUT,’c.’,’LineWidth’,1.5); hold on
plot(time_axis,YOUTHarKons1,’kx’,’LineWidth’,1.5); hold on
plot(time_axis,YOUTHarKons2,’ko’,’LineWidth’,1.5); hold on
title(‘Tidal Elevation’,’FontSize’,14,’fontWeight’,’b’)
legend({‘obs_value’, ‘XOUT’, ‘YOUT’, ‘YOUTHarKons1’, ‘YOUTHarKons2′},’FontSize’, 10, ‘FontWeight’, ‘bold’, ‘Location’, ‘northeastoutside’);
xlabel(‘Time’,’FontSize’,14,’FontWeight’,’b’)
ylabel(‘Elevation (m)’,’FontSize’,14,’FontWeight’,’b’)
% Format sumbu X agar menampilkan tanggal/waktu
% datetick(‘x’, ‘dd/mm/yyyy HH:MM:ss’, ‘keepticks’, ‘keeplimits’)
grid on
Tidal graph obs_value and prediction:
Data: Hi, i’m trying to use t_tide_v1.4beta using matlab R2016a in 2 ways like in t_tide example but the result of the harmonic constants is not similar and the prediction is not similar between prediction also offseted to the observation data. Help me please. Herewith the code and the data that I use.
Code:
clear
clc
%format LONGG
%load t_example
% load data excel
data = readtable(‘D:TestT_Tidet_tide_v1.4betakmna_wnan.xlsx’);
time_axis = datetime(data.waktu);
data_time = datenum(time_axis);
obs_value = data.ukuran;
% Analisis Harminik
%—————————————————————————
% Way 1
% analisys
[NAME,FREQ,TIDECON,XOUT] = t_tide(obs_value,’interval’,1,’start’,data_time(1),’latitude’,-3.66295,’synthesis’,1);
% prediction
YOUT=t_predic(data_time,NAME,FREQ,TIDECON,’latitude’,-3.66295,’synthesis’,1);
% Way 2
% analisys
[HarKons,XOUT2]=t_tide(obs_value,’interval’,1,’start’,data_time(1),’latitude’,-3.66295,’rayleigh’,1,’synthesis’,1);
% prediction
% YOUT=T_PREDIC(TIM,TIDESTRUC,…)
YOUTHarKons1=t_predic(data_time,HarKons,’latitude’,-3.66295,’synthesis’,1);
YOUTHarKons2=t_predic(data_time,HarKons);
%% visualisasi
figure(1)
plot(time_axis,obs_value,’b’,’LineWidth’,1.5); hold on
plot(time_axis,XOUT,’r–‘,’LineWidth’,1.5); hold on
plot(time_axis,YOUT,’c.’,’LineWidth’,1.5); hold on
plot(time_axis,YOUTHarKons1,’kx’,’LineWidth’,1.5); hold on
plot(time_axis,YOUTHarKons2,’ko’,’LineWidth’,1.5); hold on
title(‘Tidal Elevation’,’FontSize’,14,’fontWeight’,’b’)
legend({‘obs_value’, ‘XOUT’, ‘YOUT’, ‘YOUTHarKons1’, ‘YOUTHarKons2′},’FontSize’, 10, ‘FontWeight’, ‘bold’, ‘Location’, ‘northeastoutside’);
xlabel(‘Time’,’FontSize’,14,’FontWeight’,’b’)
ylabel(‘Elevation (m)’,’FontSize’,14,’FontWeight’,’b’)
% Format sumbu X agar menampilkan tanggal/waktu
% datetick(‘x’, ‘dd/mm/yyyy HH:MM:ss’, ‘keepticks’, ‘keeplimits’)
grid on
Tidal graph obs_value and prediction:
Data: t_tide MATLAB Answers — New Questions
Putting spaces between elements of a string/
I have found some graph resources that list the adjacency matrices as strings of numbers without spaces, such as:
011001110000
101111000000
110100011000
011010001100
010101000110
110010100010
100001010011
101000101001
001100010101
000110001011
000011100101
000000111110
I would like to insert spaces between each digit, so that I can use it as my adjacency matrix in Matlab. Is there a good way to do this? The matrices will all be square, but of different sizes.I have found some graph resources that list the adjacency matrices as strings of numbers without spaces, such as:
011001110000
101111000000
110100011000
011010001100
010101000110
110010100010
100001010011
101000101001
001100010101
000110001011
000011100101
000000111110
I would like to insert spaces between each digit, so that I can use it as my adjacency matrix in Matlab. Is there a good way to do this? The matrices will all be square, but of different sizes. I have found some graph resources that list the adjacency matrices as strings of numbers without spaces, such as:
011001110000
101111000000
110100011000
011010001100
010101000110
110010100010
100001010011
101000101001
001100010101
000110001011
000011100101
000000111110
I would like to insert spaces between each digit, so that I can use it as my adjacency matrix in Matlab. Is there a good way to do this? The matrices will all be square, but of different sizes. adjacency matrix, strings, spaces, formatting MATLAB Answers — New Questions
Error replacing .so library
When using MATLAB/Simulink to control an Ettus USRP B210, I encountered the following issue: I modified several parts of the UHD driver and compiled it into a .so file. I want to replace the .so file used by Simulink with my own version, but an error indicates that libtre_hash.so.2 is missing. Is it possible to use my modified driver with Simulink to control the USRP?When using MATLAB/Simulink to control an Ettus USRP B210, I encountered the following issue: I modified several parts of the UHD driver and compiled it into a .so file. I want to replace the .so file used by Simulink with my own version, but an error indicates that libtre_hash.so.2 is missing. Is it possible to use my modified driver with Simulink to control the USRP? When using MATLAB/Simulink to control an Ettus USRP B210, I encountered the following issue: I modified several parts of the UHD driver and compiled it into a .so file. I want to replace the .so file used by Simulink with my own version, but an error indicates that libtre_hash.so.2 is missing. Is it possible to use my modified driver with Simulink to control the USRP? simulink, ,r2023b MATLAB Answers — New Questions
Implicit expansion with arrayfun (cpu vs gpu)
I find very convenient that Matlab allows for implicit expansion since the 2016 version (for an explanation, see this nice article: https://blogs.mathworks.com/loren/2016/10/24/matlab-arithmetic-expands-in-r2016b/?s_tid=blogs_rc_1).
I was then puzzled to discover that arrayfun on the cpu does not allow for it, while arrayfun when called with gpu arrays does allow for implicit expansion. Below is a MWE to demonstrate this behavior.
Let me quickly explain it: if I have two vectors x with size [2,1] and y with size [1,2], I can calculate the sum x+y and get a matrix 2*2 as intended. This is better than the ugly and more memory-intensive
repmat(x,1,2)+repmat(y,2,1)
Unfortunately this does not work with arrayfun on the cpu!
Since I code both using normal arrays and GPU arrays, I find this different behavior of arrayfun quite misleading. It would be great if Matlab could allow implicit expansion also on arrayfun cpu. When I have large arrays, duplicating dimensions with repmat takes a lot of memory.
%% Demonstration of implicit expansion support in MATLAB and arrayfun
% This script shows that:
% 1) MATLAB supports implicit expansion for standard array operations.
% 2) arrayfun on the GPU supports implicit expansion.
% 3) arrayfun on the CPU does NOT support implicit expansion!!
%
% Implicit expansion allows a 2×1 vector to be added to a 1×2 vector,
% producing a 2×2 matrix.
clear; clc; close all;
% Define test vectors
x = [1; 2]; % Column vector (2×1)
y = [1, 2]; % Row vector (1×2)
%% Implicit expansion using standard MATLAB operations
F1 = myadd(x, y);
%% Implicit expansion using arrayfun on the GPU
F2 = arrayfun(@myadd, gpuArray(x), gpuArray(y));
%% Attempt implicit expansion using arrayfun on the CPU (expected to fail)
try
F3 = arrayfun(@myadd, x, y);
catch ME
fprintf(‘CPU arrayfun error (expected):n%snn’, ME.message);
end
%% Function myadd
function F = myadd(x, y)
% Element-wise addition
F = x + y;
endI find very convenient that Matlab allows for implicit expansion since the 2016 version (for an explanation, see this nice article: https://blogs.mathworks.com/loren/2016/10/24/matlab-arithmetic-expands-in-r2016b/?s_tid=blogs_rc_1).
I was then puzzled to discover that arrayfun on the cpu does not allow for it, while arrayfun when called with gpu arrays does allow for implicit expansion. Below is a MWE to demonstrate this behavior.
Let me quickly explain it: if I have two vectors x with size [2,1] and y with size [1,2], I can calculate the sum x+y and get a matrix 2*2 as intended. This is better than the ugly and more memory-intensive
repmat(x,1,2)+repmat(y,2,1)
Unfortunately this does not work with arrayfun on the cpu!
Since I code both using normal arrays and GPU arrays, I find this different behavior of arrayfun quite misleading. It would be great if Matlab could allow implicit expansion also on arrayfun cpu. When I have large arrays, duplicating dimensions with repmat takes a lot of memory.
%% Demonstration of implicit expansion support in MATLAB and arrayfun
% This script shows that:
% 1) MATLAB supports implicit expansion for standard array operations.
% 2) arrayfun on the GPU supports implicit expansion.
% 3) arrayfun on the CPU does NOT support implicit expansion!!
%
% Implicit expansion allows a 2×1 vector to be added to a 1×2 vector,
% producing a 2×2 matrix.
clear; clc; close all;
% Define test vectors
x = [1; 2]; % Column vector (2×1)
y = [1, 2]; % Row vector (1×2)
%% Implicit expansion using standard MATLAB operations
F1 = myadd(x, y);
%% Implicit expansion using arrayfun on the GPU
F2 = arrayfun(@myadd, gpuArray(x), gpuArray(y));
%% Attempt implicit expansion using arrayfun on the CPU (expected to fail)
try
F3 = arrayfun(@myadd, x, y);
catch ME
fprintf(‘CPU arrayfun error (expected):n%snn’, ME.message);
end
%% Function myadd
function F = myadd(x, y)
% Element-wise addition
F = x + y;
end I find very convenient that Matlab allows for implicit expansion since the 2016 version (for an explanation, see this nice article: https://blogs.mathworks.com/loren/2016/10/24/matlab-arithmetic-expands-in-r2016b/?s_tid=blogs_rc_1).
I was then puzzled to discover that arrayfun on the cpu does not allow for it, while arrayfun when called with gpu arrays does allow for implicit expansion. Below is a MWE to demonstrate this behavior.
Let me quickly explain it: if I have two vectors x with size [2,1] and y with size [1,2], I can calculate the sum x+y and get a matrix 2*2 as intended. This is better than the ugly and more memory-intensive
repmat(x,1,2)+repmat(y,2,1)
Unfortunately this does not work with arrayfun on the cpu!
Since I code both using normal arrays and GPU arrays, I find this different behavior of arrayfun quite misleading. It would be great if Matlab could allow implicit expansion also on arrayfun cpu. When I have large arrays, duplicating dimensions with repmat takes a lot of memory.
%% Demonstration of implicit expansion support in MATLAB and arrayfun
% This script shows that:
% 1) MATLAB supports implicit expansion for standard array operations.
% 2) arrayfun on the GPU supports implicit expansion.
% 3) arrayfun on the CPU does NOT support implicit expansion!!
%
% Implicit expansion allows a 2×1 vector to be added to a 1×2 vector,
% producing a 2×2 matrix.
clear; clc; close all;
% Define test vectors
x = [1; 2]; % Column vector (2×1)
y = [1, 2]; % Row vector (1×2)
%% Implicit expansion using standard MATLAB operations
F1 = myadd(x, y);
%% Implicit expansion using arrayfun on the GPU
F2 = arrayfun(@myadd, gpuArray(x), gpuArray(y));
%% Attempt implicit expansion using arrayfun on the CPU (expected to fail)
try
F3 = arrayfun(@myadd, x, y);
catch ME
fprintf(‘CPU arrayfun error (expected):n%snn’, ME.message);
end
%% Function myadd
function F = myadd(x, y)
% Element-wise addition
F = x + y;
end arrayfun, implicit expansion MATLAB Answers — New Questions
The assignment of workers to cores
Hello, we are planning to buy an MDSC of 128 workers.
In running a parallel job of 128 workers, what is the minimum number of cores should there be in the hardware platform that I am going to use? How many workers can I assign to each core of the machine at the maximum ?
Would appreciate your answer. ThanksHello, we are planning to buy an MDSC of 128 workers.
In running a parallel job of 128 workers, what is the minimum number of cores should there be in the hardware platform that I am going to use? How many workers can I assign to each core of the machine at the maximum ?
Would appreciate your answer. Thanks Hello, we are planning to buy an MDSC of 128 workers.
In running a parallel job of 128 workers, what is the minimum number of cores should there be in the hardware platform that I am going to use? How many workers can I assign to each core of the machine at the maximum ?
Would appreciate your answer. Thanks parallel computing MATLAB Answers — New Questions
how to plot these 2 column data into a curve on oxy plane
pls see the attached,
Thanks &Br,
Tony.wangpls see the attached,
Thanks &Br,
Tony.wang pls see the attached,
Thanks &Br,
Tony.wang plotting data into a curve MATLAB Answers — New Questions
How to remove this red line in my micro-doppler analysis?
Here is my main code, I look the spectograms but I only see a red strip just near to the middle bins, which I assume that it is an object with zero speed.
rFFT = fft(mDopplerAvg.*win, [],1);
rFFT = rFFT – mean(rFFT, 2);
% Obtain range bins that include a target
rangePower = mean(abs(rFFT).^2,2);
% Do not use first few bins as they would probably include DC peaks due
% to antenna leakage (can be adjusted empirically)
rangeVar = var(abs(rFFT), 0, 2);
rangeVar(1:6) = 0;
[~, targetIdx] = max(rangeVar);
slowTime = rFFT(targetIdx,:);
Here, the mDopplerAvg is the raw I/Q matrix that I process for micro-Doppler. I have applied some tricks in order that the static zero speed object (the red strip) go away. However, it didn’t work. At the last of the code, the classic short time Fourier transform is applied along the second axis, and I think the size of the spectogram is well-configurated. I almost always obtain a map just like below.Here is my main code, I look the spectograms but I only see a red strip just near to the middle bins, which I assume that it is an object with zero speed.
rFFT = fft(mDopplerAvg.*win, [],1);
rFFT = rFFT – mean(rFFT, 2);
% Obtain range bins that include a target
rangePower = mean(abs(rFFT).^2,2);
% Do not use first few bins as they would probably include DC peaks due
% to antenna leakage (can be adjusted empirically)
rangeVar = var(abs(rFFT), 0, 2);
rangeVar(1:6) = 0;
[~, targetIdx] = max(rangeVar);
slowTime = rFFT(targetIdx,:);
Here, the mDopplerAvg is the raw I/Q matrix that I process for micro-Doppler. I have applied some tricks in order that the static zero speed object (the red strip) go away. However, it didn’t work. At the last of the code, the classic short time Fourier transform is applied along the second axis, and I think the size of the spectogram is well-configurated. I almost always obtain a map just like below. Here is my main code, I look the spectograms but I only see a red strip just near to the middle bins, which I assume that it is an object with zero speed.
rFFT = fft(mDopplerAvg.*win, [],1);
rFFT = rFFT – mean(rFFT, 2);
% Obtain range bins that include a target
rangePower = mean(abs(rFFT).^2,2);
% Do not use first few bins as they would probably include DC peaks due
% to antenna leakage (can be adjusted empirically)
rangeVar = var(abs(rFFT), 0, 2);
rangeVar(1:6) = 0;
[~, targetIdx] = max(rangeVar);
slowTime = rFFT(targetIdx,:);
Here, the mDopplerAvg is the raw I/Q matrix that I process for micro-Doppler. I have applied some tricks in order that the static zero speed object (the red strip) go away. However, it didn’t work. At the last of the code, the classic short time Fourier transform is applied along the second axis, and I think the size of the spectogram is well-configurated. I almost always obtain a map just like below. i/q, radar, signal processing, filtering MATLAB Answers — New Questions
License checkout failed – License Manager Error -9
License checkout failed.
License Manager Error -9
Your username does not match the username in the license file.
To run MATLAB on this computer, you must run the Activation client to reactivate your license.
Troubleshoot this issue by visiting:
http://www.mathworks.com/support/lme/R2015b/9
Diagnostic Information:
Feature: MATLAB
License path: /home/mpva/.matlab/R2015b_licenses:/usr/local/MATLAB/R2015b/licenses/license.dat:/usr/local/MATLAB/R
2015b/licenses/license_OptiPlex-960_1066905_R2015b.lic
Licensing error: -9,57.License checkout failed.
License Manager Error -9
Your username does not match the username in the license file.
To run MATLAB on this computer, you must run the Activation client to reactivate your license.
Troubleshoot this issue by visiting:
http://www.mathworks.com/support/lme/R2015b/9
Diagnostic Information:
Feature: MATLAB
License path: /home/mpva/.matlab/R2015b_licenses:/usr/local/MATLAB/R2015b/licenses/license.dat:/usr/local/MATLAB/R
2015b/licenses/license_OptiPlex-960_1066905_R2015b.lic
Licensing error: -9,57. License checkout failed.
License Manager Error -9
Your username does not match the username in the license file.
To run MATLAB on this computer, you must run the Activation client to reactivate your license.
Troubleshoot this issue by visiting:
http://www.mathworks.com/support/lme/R2015b/9
Diagnostic Information:
Feature: MATLAB
License path: /home/mpva/.matlab/R2015b_licenses:/usr/local/MATLAB/R2015b/licenses/license.dat:/usr/local/MATLAB/R
2015b/licenses/license_OptiPlex-960_1066905_R2015b.lic
Licensing error: -9,57. license error MATLAB Answers — New Questions
Why does my prediction always show high risk?
Hello everyone.
I want to ask a question regarding my final year project.
I’m currently doing a prediction system using:
UCI heart disease dataset.
Ensemble method (Subspace Discriminant) trained model from Classifier Learner App.
a GUI from app designer.
The system shown no problem when detecting a high parameter for high risk patient data and correctly shows ‘Heart Disease Detected’ but for a low parameter for a normal patient data it still shows the output as ‘Heart Disease Detected’. It is because of the dataset’s value comes from patients that already suspect with heart disease or the model used is sensitive. The GUI screenshot is suppose to be a normal patient data.
If you have an insight about this please share with me. Thank you.
I’ll share the coding used in the app designer and the GUI with some of the patient attribute data where the target is suppose to be the outcome of this system prediction.
properties (Access = private)
modelData = load(‘HeartModel.mat’,’trainedModel’);
end
methods (Access = private)
function startupFcn(app)
% Set DropDown items and ItemsData for numerical values
% Sex
app.SexDropDown.Items = {‘Female’, ‘Male’};
app.SexDropDown.ItemsData = [0, 1];
% Chest Pain (cp)
app.ChestPainDropDown.Items = {‘Normal’,’Typical Angina’, ‘Atypical Angina’, ‘Non-anginal Pain’, ‘Asymptomatic’};
app.ChestPainDropDown.ItemsData = [0, 1, 2, 3, 4];
% Fasting Blood Sugar (fbs)
app.FastingBloodSugarDropDown.Items = {‘<= 120 mg/dL’, ‘> 120 mg/dL’};
app.FastingBloodSugarDropDown.ItemsData = [0, 1];
% Rest ECG (restecg)
app.RestECGDropDown.Items = {‘Normal’, ‘ST-T Wave Abnormality’, ‘LV Hypertrophy’};
app.RestECGDropDown.ItemsData = [0, 1, 2];
% Slope
app.SlopeDropDown.Items = {‘Upsloping’, ‘Flat’, ‘Downsloping’};
app.SlopeDropDown.ItemsData = [1, 2, 3];
% Exercise Angina (exang)
app.ExerciseAnginaDropDown.Items = {‘No’, ‘Yes’};
app.ExerciseAnginaDropDown.ItemsData = [0, 1];
% CA
app.CADropDown.Items = {‘0’, ‘1’, ‘2’, ‘3’};
app.CADropDown.ItemsData = [0, 1, 2, 3];
% Thal
app.ThalDropDown.Items = {‘Normal’, ‘Fixed Defect’, ‘Reversible Defect’};
app.ThalDropDown.ItemsData = [3, 6, 7];
end
end
% Button pushed function: PredictButton
function PredictButtonPushed(app, event)
% Collect all inputs (convert to double to be safe)
age = double(app.AgeEditField.Value);
sex = double(app.SexDropDown.Value);
cp = double(app.ChestPainDropDown.Value);
trestbps = double(app.RestingBPEditField.Value);
chol = double(app.CholesterolEditField.Value);
fbs = double(app.FastingBloodSugarDropDown.Value);
restecg = double(app.RestECGDropDown.Value);
thalach = double(app.MaxHeartRateEditField.Value);
exang = double(app.ExerciseAnginaDropDown.Value);
oldpeak = double(app.OldpeakEditField.Value);
slope = double(app.SlopeDropDown.Value);
ca = double(app.CADropDown.Value);
thal = double(app.ThalDropDown.Value);
% Create input table
T = table(age, sex, cp, trestbps, chol, fbs, restecg, thalach, …
exang, oldpeak, slope, ca, thal, …
‘VariableNames’, {‘age’,’sex’,’cp’,’trestbps’,’chol’,’fbs’,…
‘restecg’,’thalach’,’exang’,’oldpeak’,…
‘slope’,’ca’,’thal’});
%Prediction
label = app.modelData.trainedModel.predictFcn(T);
% Display result
if label == 0
app.ResultLabel.Text = ‘No Heart Disease’;
app.ResultLabel.FontColor = [0 1 0]; % Green
else
app.ResultLabel.Text = ‘Heart Disease Detected’;
app.ResultLabel.FontColor = [1 0 0]; % Red
endHello everyone.
I want to ask a question regarding my final year project.
I’m currently doing a prediction system using:
UCI heart disease dataset.
Ensemble method (Subspace Discriminant) trained model from Classifier Learner App.
a GUI from app designer.
The system shown no problem when detecting a high parameter for high risk patient data and correctly shows ‘Heart Disease Detected’ but for a low parameter for a normal patient data it still shows the output as ‘Heart Disease Detected’. It is because of the dataset’s value comes from patients that already suspect with heart disease or the model used is sensitive. The GUI screenshot is suppose to be a normal patient data.
If you have an insight about this please share with me. Thank you.
I’ll share the coding used in the app designer and the GUI with some of the patient attribute data where the target is suppose to be the outcome of this system prediction.
properties (Access = private)
modelData = load(‘HeartModel.mat’,’trainedModel’);
end
methods (Access = private)
function startupFcn(app)
% Set DropDown items and ItemsData for numerical values
% Sex
app.SexDropDown.Items = {‘Female’, ‘Male’};
app.SexDropDown.ItemsData = [0, 1];
% Chest Pain (cp)
app.ChestPainDropDown.Items = {‘Normal’,’Typical Angina’, ‘Atypical Angina’, ‘Non-anginal Pain’, ‘Asymptomatic’};
app.ChestPainDropDown.ItemsData = [0, 1, 2, 3, 4];
% Fasting Blood Sugar (fbs)
app.FastingBloodSugarDropDown.Items = {‘<= 120 mg/dL’, ‘> 120 mg/dL’};
app.FastingBloodSugarDropDown.ItemsData = [0, 1];
% Rest ECG (restecg)
app.RestECGDropDown.Items = {‘Normal’, ‘ST-T Wave Abnormality’, ‘LV Hypertrophy’};
app.RestECGDropDown.ItemsData = [0, 1, 2];
% Slope
app.SlopeDropDown.Items = {‘Upsloping’, ‘Flat’, ‘Downsloping’};
app.SlopeDropDown.ItemsData = [1, 2, 3];
% Exercise Angina (exang)
app.ExerciseAnginaDropDown.Items = {‘No’, ‘Yes’};
app.ExerciseAnginaDropDown.ItemsData = [0, 1];
% CA
app.CADropDown.Items = {‘0’, ‘1’, ‘2’, ‘3’};
app.CADropDown.ItemsData = [0, 1, 2, 3];
% Thal
app.ThalDropDown.Items = {‘Normal’, ‘Fixed Defect’, ‘Reversible Defect’};
app.ThalDropDown.ItemsData = [3, 6, 7];
end
end
% Button pushed function: PredictButton
function PredictButtonPushed(app, event)
% Collect all inputs (convert to double to be safe)
age = double(app.AgeEditField.Value);
sex = double(app.SexDropDown.Value);
cp = double(app.ChestPainDropDown.Value);
trestbps = double(app.RestingBPEditField.Value);
chol = double(app.CholesterolEditField.Value);
fbs = double(app.FastingBloodSugarDropDown.Value);
restecg = double(app.RestECGDropDown.Value);
thalach = double(app.MaxHeartRateEditField.Value);
exang = double(app.ExerciseAnginaDropDown.Value);
oldpeak = double(app.OldpeakEditField.Value);
slope = double(app.SlopeDropDown.Value);
ca = double(app.CADropDown.Value);
thal = double(app.ThalDropDown.Value);
% Create input table
T = table(age, sex, cp, trestbps, chol, fbs, restecg, thalach, …
exang, oldpeak, slope, ca, thal, …
‘VariableNames’, {‘age’,’sex’,’cp’,’trestbps’,’chol’,’fbs’,…
‘restecg’,’thalach’,’exang’,’oldpeak’,…
‘slope’,’ca’,’thal’});
%Prediction
label = app.modelData.trainedModel.predictFcn(T);
% Display result
if label == 0
app.ResultLabel.Text = ‘No Heart Disease’;
app.ResultLabel.FontColor = [0 1 0]; % Green
else
app.ResultLabel.Text = ‘Heart Disease Detected’;
app.ResultLabel.FontColor = [1 0 0]; % Red
end Hello everyone.
I want to ask a question regarding my final year project.
I’m currently doing a prediction system using:
UCI heart disease dataset.
Ensemble method (Subspace Discriminant) trained model from Classifier Learner App.
a GUI from app designer.
The system shown no problem when detecting a high parameter for high risk patient data and correctly shows ‘Heart Disease Detected’ but for a low parameter for a normal patient data it still shows the output as ‘Heart Disease Detected’. It is because of the dataset’s value comes from patients that already suspect with heart disease or the model used is sensitive. The GUI screenshot is suppose to be a normal patient data.
If you have an insight about this please share with me. Thank you.
I’ll share the coding used in the app designer and the GUI with some of the patient attribute data where the target is suppose to be the outcome of this system prediction.
properties (Access = private)
modelData = load(‘HeartModel.mat’,’trainedModel’);
end
methods (Access = private)
function startupFcn(app)
% Set DropDown items and ItemsData for numerical values
% Sex
app.SexDropDown.Items = {‘Female’, ‘Male’};
app.SexDropDown.ItemsData = [0, 1];
% Chest Pain (cp)
app.ChestPainDropDown.Items = {‘Normal’,’Typical Angina’, ‘Atypical Angina’, ‘Non-anginal Pain’, ‘Asymptomatic’};
app.ChestPainDropDown.ItemsData = [0, 1, 2, 3, 4];
% Fasting Blood Sugar (fbs)
app.FastingBloodSugarDropDown.Items = {‘<= 120 mg/dL’, ‘> 120 mg/dL’};
app.FastingBloodSugarDropDown.ItemsData = [0, 1];
% Rest ECG (restecg)
app.RestECGDropDown.Items = {‘Normal’, ‘ST-T Wave Abnormality’, ‘LV Hypertrophy’};
app.RestECGDropDown.ItemsData = [0, 1, 2];
% Slope
app.SlopeDropDown.Items = {‘Upsloping’, ‘Flat’, ‘Downsloping’};
app.SlopeDropDown.ItemsData = [1, 2, 3];
% Exercise Angina (exang)
app.ExerciseAnginaDropDown.Items = {‘No’, ‘Yes’};
app.ExerciseAnginaDropDown.ItemsData = [0, 1];
% CA
app.CADropDown.Items = {‘0’, ‘1’, ‘2’, ‘3’};
app.CADropDown.ItemsData = [0, 1, 2, 3];
% Thal
app.ThalDropDown.Items = {‘Normal’, ‘Fixed Defect’, ‘Reversible Defect’};
app.ThalDropDown.ItemsData = [3, 6, 7];
end
end
% Button pushed function: PredictButton
function PredictButtonPushed(app, event)
% Collect all inputs (convert to double to be safe)
age = double(app.AgeEditField.Value);
sex = double(app.SexDropDown.Value);
cp = double(app.ChestPainDropDown.Value);
trestbps = double(app.RestingBPEditField.Value);
chol = double(app.CholesterolEditField.Value);
fbs = double(app.FastingBloodSugarDropDown.Value);
restecg = double(app.RestECGDropDown.Value);
thalach = double(app.MaxHeartRateEditField.Value);
exang = double(app.ExerciseAnginaDropDown.Value);
oldpeak = double(app.OldpeakEditField.Value);
slope = double(app.SlopeDropDown.Value);
ca = double(app.CADropDown.Value);
thal = double(app.ThalDropDown.Value);
% Create input table
T = table(age, sex, cp, trestbps, chol, fbs, restecg, thalach, …
exang, oldpeak, slope, ca, thal, …
‘VariableNames’, {‘age’,’sex’,’cp’,’trestbps’,’chol’,’fbs’,…
‘restecg’,’thalach’,’exang’,’oldpeak’,…
‘slope’,’ca’,’thal’});
%Prediction
label = app.modelData.trainedModel.predictFcn(T);
% Display result
if label == 0
app.ResultLabel.Text = ‘No Heart Disease’;
app.ResultLabel.FontColor = [0 1 0]; % Green
else
app.ResultLabel.Text = ‘Heart Disease Detected’;
app.ResultLabel.FontColor = [1 0 0]; % Red
end app designer, appdesigner MATLAB Answers — New Questions
Simscape License Checkout failed using Simulink Online in self-paced Online Course “Power Electronics Simulation Onramp”
When using "simulink online" in the Browser window for my self-paced online course "Power Electronics Simulation Onramp", I get a "license manager error -5, Cannot find a license for simscape." message. I am aware, that I do not possess a simscape license, but this should only matter when using my local matlab installation. In simulink online, all required licenses to complete a self-paced online course should be available.
Complete error message copied from command window:
License checkout failed.
License Manager Error -5
Cannot find a license for power_system_blocks.
Troubleshoot this issue by visiting:
https://www.mathworks.com/support/lme/5
Diagnostic Information:
Feature: power_system_blocks
License path: 13501@10.168.81.22:13501@10.168.115.247:13501@10.168.145.231:13501@10.168.84.206:13501@10.168.101.121:13501@10.168.131.14:/home/matlab/.matlab/R2023a_licenses:/MATLAB/licenses/license.dat:/MATLAB/licenses
Licensing error: -5,0.
License checkout failed.
License Manager Error -5
Cannot find a license for simscape.
Troubleshoot this issue by visiting:
https://www.mathworks.com/support/lme/5
Diagnostic Information:
Feature: simscape
License path: 13501@10.168.81.22:13501@10.168.115.247:13501@10.168.145.231:13501@10.168.84.206:13501@10.168.101.121:13501@10.168.131.14:/home/matlab/.matlab/R2023a_licenses:/MATLAB/licenses/license.dat:/MATLAB/licenses
Licensing error: -5,0.
Error using learning.simulink.launchOnramp
Unable to check out a Simscape Electrical license, which is required by Power Electronics Simulation Onramp.
Alternatively, you can take the course on the MathWorks Self-Paced Online Courses website.When using "simulink online" in the Browser window for my self-paced online course "Power Electronics Simulation Onramp", I get a "license manager error -5, Cannot find a license for simscape." message. I am aware, that I do not possess a simscape license, but this should only matter when using my local matlab installation. In simulink online, all required licenses to complete a self-paced online course should be available.
Complete error message copied from command window:
License checkout failed.
License Manager Error -5
Cannot find a license for power_system_blocks.
Troubleshoot this issue by visiting:
https://www.mathworks.com/support/lme/5
Diagnostic Information:
Feature: power_system_blocks
License path: 13501@10.168.81.22:13501@10.168.115.247:13501@10.168.145.231:13501@10.168.84.206:13501@10.168.101.121:13501@10.168.131.14:/home/matlab/.matlab/R2023a_licenses:/MATLAB/licenses/license.dat:/MATLAB/licenses
Licensing error: -5,0.
License checkout failed.
License Manager Error -5
Cannot find a license for simscape.
Troubleshoot this issue by visiting:
https://www.mathworks.com/support/lme/5
Diagnostic Information:
Feature: simscape
License path: 13501@10.168.81.22:13501@10.168.115.247:13501@10.168.145.231:13501@10.168.84.206:13501@10.168.101.121:13501@10.168.131.14:/home/matlab/.matlab/R2023a_licenses:/MATLAB/licenses/license.dat:/MATLAB/licenses
Licensing error: -5,0.
Error using learning.simulink.launchOnramp
Unable to check out a Simscape Electrical license, which is required by Power Electronics Simulation Onramp.
Alternatively, you can take the course on the MathWorks Self-Paced Online Courses website. When using "simulink online" in the Browser window for my self-paced online course "Power Electronics Simulation Onramp", I get a "license manager error -5, Cannot find a license for simscape." message. I am aware, that I do not possess a simscape license, but this should only matter when using my local matlab installation. In simulink online, all required licenses to complete a self-paced online course should be available.
Complete error message copied from command window:
License checkout failed.
License Manager Error -5
Cannot find a license for power_system_blocks.
Troubleshoot this issue by visiting:
https://www.mathworks.com/support/lme/5
Diagnostic Information:
Feature: power_system_blocks
License path: 13501@10.168.81.22:13501@10.168.115.247:13501@10.168.145.231:13501@10.168.84.206:13501@10.168.101.121:13501@10.168.131.14:/home/matlab/.matlab/R2023a_licenses:/MATLAB/licenses/license.dat:/MATLAB/licenses
Licensing error: -5,0.
License checkout failed.
License Manager Error -5
Cannot find a license for simscape.
Troubleshoot this issue by visiting:
https://www.mathworks.com/support/lme/5
Diagnostic Information:
Feature: simscape
License path: 13501@10.168.81.22:13501@10.168.115.247:13501@10.168.145.231:13501@10.168.84.206:13501@10.168.101.121:13501@10.168.131.14:/home/matlab/.matlab/R2023a_licenses:/MATLAB/licenses/license.dat:/MATLAB/licenses
Licensing error: -5,0.
Error using learning.simulink.launchOnramp
Unable to check out a Simscape Electrical license, which is required by Power Electronics Simulation Onramp.
Alternatively, you can take the course on the MathWorks Self-Paced Online Courses website. simulink online, license checkout failed, simscape, online course MATLAB Answers — New Questions
Teams Admin Center Simplifies External Collaboration
TAC Gives External Collaboration Management a Makeover
In the article about developing user training for Microsoft 365 Copilot, I commented that keeping training updated to match changes made by Microsoft is a challenge. Teams was the first Microsoft 365 application to exhibit the kind of rapid development cycles that we currently see in Copilot. The Teams client UX seemed to change daily, and although the rate of change was slower for administrative functions and interfaces, it still happened.
Teams isn’t quite in the same place any longer. I guess that having hundreds of millions of users slows the ability of developers to make changes within an application. Major updates like the threaded layout for channels (after six months of trying, I still dislike the implementation) and minor changes like the arrival of autocorrect for message composition still happen, but at a more measured pace.
Open, Controlled, and Custom Modes for External Collaboration
All of which brings us to message center notification MC1183006 (last updated 1 December 2025) covering the introduction of three modes for external collaboration settings in the Teams admin center (TAC – Figure 1). The modes cover aspects of external collaboration such as shared channels, guest access to teams, and which external domains (including test domains) are allowed to chat with people in your tenant.

The new interface rolls out in general availability in mid-February 2026 and should be in place worldwide by the end of February 2026.
Working with Settings
Two of the modes (Open and Controlled) are predefined and the other (Custom) is what you’ll see if administrators have made any changes to the external collaboration settings in the past.
The idea of the two predefined modes is that tenants can choose a mode that makes sense for their operations. In truth, I don’t think that many tenants will end up in the open or controlled modes. Think of these modes as starting points to guide tenants to the most appropriate set of custom external collaboration settings.
Clicking the down arrow reveals details of individual settings, all of which have been available previously (details of the settings in the two predefined modes are available in the online documentation). For example, I have long advocated that Microsoft 365 tenants should use an allow list to control the tenants that users can collaborate with and the block list for the Entra B2B Collaboration policy to stop guests from being invited from specific domains. The allow list for tenants is available under the “Who gets access” settings.
However, the Entra B2B Collaboration policy settings aren’t currently shown in TAC. This isn’t surprising because the Entra policy affects all applications and TAC takes care of Teams-specific controls. It’s a good reminder that controls that affect Teams operations can exist elsewhere in Microsoft 365.
Making Teams Management More Elegant
It’s been said in the past that Teams is in danger of running up its real end due to the number of policies and settings available to manage different aspects of the application. There are too many policies in Teams and some of the policies are burdened by settings that go back to Skype for Business Online. If you’ve worked with Teams for a while, you might not notice just how many controls are available for tweaking, but it’s certainly an evident issue for people coming to Teams for the first time.
This isn’t a UX that most administrators are likely to use often. Once configured, external collaboration settings tend to stay in place until some reason arises to force an update, like when Microsoft blocked federated chat with trial tenants in 2024. Even so, it’s good to try and simplify tenant management, especially for a high-profile application like Teams, so this is a good change.
Make sure that you’re not surprised about changes that appear inside Microsoft 365 applications by subscribing to the Office 365 for IT Pros eBook. Our monthly updates make sure that our subscribers stay informed.
Adding a class-related function to appdesigner app
Is there a way, in appdesigner, to create a class-related function, i.e., a function that is local to the app’s classdef file, but which is not a class method?Is there a way, in appdesigner, to create a class-related function, i.e., a function that is local to the app’s classdef file, but which is not a class method? Is there a way, in appdesigner, to create a class-related function, i.e., a function that is local to the app’s classdef file, but which is not a class method? appdesigner, classdef, class-related, app MATLAB Answers — New Questions
Design FDMA using simulink
Hello,
I am working on a FDMA project using Simulink and I am facing technical issues with the following blocks:
– Sine Wave (Discrete Time)
– Product (BPSK × Carrier)
– Bandpass Filter
– AWGN Channel
**Problem:**
1. When using AWGN Channel with mode "Signal to Noise Ratio", I get:
"Input and output must be discrete when mode set to Signal to Noise Ratio".
2. After the Filter, sometimes complex signals appear causing errors in Integrator or Decision blocks.
**Current settings for User 1 example:**
– Sine Wave: Discrete, Sample time = 0.0001 s
– Filter: Bandpass, Filter order = 4, Lower passband = 900 Hz, Upper passband = 1100 Hz
– Stopband 1 = 800 Hz, Stopband 2 = 1200 Hz, Stopband attenuation = 40 dB
– AWGN Channel: Mode = Signal to Noise Ratio
**Goal:**
– Run FDMA for two users (User1 = 1 kHz, User2 = 2 kHz)
– Avoid any complex signals
– Make AWGN Channel work correctly with specified SNR
**Request:**
– How to set up the blocks (Sine Wave, Product, Filter, AWGN) so that no complex signals appear and AWGN works correctly?
– How to choose the correct Sample time and Filter type for each block?
**Attachments:**
– Simulink screenshots
– Simulink file (.slx) if possible
Thank you very much for your help.
<<
<</matlabcentral/answers/uploaded_files/1845240/IMG_20260101_225640_567.jpg>>
>>Hello,
I am working on a FDMA project using Simulink and I am facing technical issues with the following blocks:
– Sine Wave (Discrete Time)
– Product (BPSK × Carrier)
– Bandpass Filter
– AWGN Channel
**Problem:**
1. When using AWGN Channel with mode "Signal to Noise Ratio", I get:
"Input and output must be discrete when mode set to Signal to Noise Ratio".
2. After the Filter, sometimes complex signals appear causing errors in Integrator or Decision blocks.
**Current settings for User 1 example:**
– Sine Wave: Discrete, Sample time = 0.0001 s
– Filter: Bandpass, Filter order = 4, Lower passband = 900 Hz, Upper passband = 1100 Hz
– Stopband 1 = 800 Hz, Stopband 2 = 1200 Hz, Stopband attenuation = 40 dB
– AWGN Channel: Mode = Signal to Noise Ratio
**Goal:**
– Run FDMA for two users (User1 = 1 kHz, User2 = 2 kHz)
– Avoid any complex signals
– Make AWGN Channel work correctly with specified SNR
**Request:**
– How to set up the blocks (Sine Wave, Product, Filter, AWGN) so that no complex signals appear and AWGN works correctly?
– How to choose the correct Sample time and Filter type for each block?
**Attachments:**
– Simulink screenshots
– Simulink file (.slx) if possible
Thank you very much for your help.
<<
<</matlabcentral/answers/uploaded_files/1845240/IMG_20260101_225640_567.jpg>>
>> Hello,
I am working on a FDMA project using Simulink and I am facing technical issues with the following blocks:
– Sine Wave (Discrete Time)
– Product (BPSK × Carrier)
– Bandpass Filter
– AWGN Channel
**Problem:**
1. When using AWGN Channel with mode "Signal to Noise Ratio", I get:
"Input and output must be discrete when mode set to Signal to Noise Ratio".
2. After the Filter, sometimes complex signals appear causing errors in Integrator or Decision blocks.
**Current settings for User 1 example:**
– Sine Wave: Discrete, Sample time = 0.0001 s
– Filter: Bandpass, Filter order = 4, Lower passband = 900 Hz, Upper passband = 1100 Hz
– Stopband 1 = 800 Hz, Stopband 2 = 1200 Hz, Stopband attenuation = 40 dB
– AWGN Channel: Mode = Signal to Noise Ratio
**Goal:**
– Run FDMA for two users (User1 = 1 kHz, User2 = 2 kHz)
– Avoid any complex signals
– Make AWGN Channel work correctly with specified SNR
**Request:**
– How to set up the blocks (Sine Wave, Product, Filter, AWGN) so that no complex signals appear and AWGN works correctly?
– How to choose the correct Sample time and Filter type for each block?
**Attachments:**
– Simulink screenshots
– Simulink file (.slx) if possible
Thank you very much for your help.
<<
<</matlabcentral/answers/uploaded_files/1845240/IMG_20260101_225640_567.jpg>>
>> #fdma#simulink MATLAB Answers — New Questions
arduino BLE send/receive simulink problem
Hello,
I am trying to send /receive BLE data from the sensors on an arduino board in simulink using some predifined BLE peripheral blocks. Then I upload the code on the arduino hardware and run it. So far this works with arduino nano iot 33 as all characteristics are visible.
It does not with BLE, BLE sense, and BLE sense rev2 boards. With the latter, the BLE service does not show up, for example in matlab calling blelist.
I tried with an ESP32 board as well. Here characteristics appear, but it depends on how many have been defined in simulink. Some of them are not accesible and some carry the same uuid although they have been given a different characteristic uuid in Simulink. It gives a erratic impression.
I’ve looked around on the forum but can’t find a solution. This seems to be a simulink incompatability issue…?
Is there perhaps a workaround for this problem ?
Thanks for any helpHello,
I am trying to send /receive BLE data from the sensors on an arduino board in simulink using some predifined BLE peripheral blocks. Then I upload the code on the arduino hardware and run it. So far this works with arduino nano iot 33 as all characteristics are visible.
It does not with BLE, BLE sense, and BLE sense rev2 boards. With the latter, the BLE service does not show up, for example in matlab calling blelist.
I tried with an ESP32 board as well. Here characteristics appear, but it depends on how many have been defined in simulink. Some of them are not accesible and some carry the same uuid although they have been given a different characteristic uuid in Simulink. It gives a erratic impression.
I’ve looked around on the forum but can’t find a solution. This seems to be a simulink incompatability issue…?
Is there perhaps a workaround for this problem ?
Thanks for any help Hello,
I am trying to send /receive BLE data from the sensors on an arduino board in simulink using some predifined BLE peripheral blocks. Then I upload the code on the arduino hardware and run it. So far this works with arduino nano iot 33 as all characteristics are visible.
It does not with BLE, BLE sense, and BLE sense rev2 boards. With the latter, the BLE service does not show up, for example in matlab calling blelist.
I tried with an ESP32 board as well. Here characteristics appear, but it depends on how many have been defined in simulink. Some of them are not accesible and some carry the same uuid although they have been given a different characteristic uuid in Simulink. It gives a erratic impression.
I’ve looked around on the forum but can’t find a solution. This seems to be a simulink incompatability issue…?
Is there perhaps a workaround for this problem ?
Thanks for any help simulink, ble, arduino MATLAB Answers — New Questions
January 2026 Update for Office 365 for IT Pros
Happy New Year to Office 365 for IT Pros Readers

Starting off the new year with a bang, the Office 365 for IT Pros eBook team is delighted to announce the availability of the January 2026 update for Office 365 for IT Pros (2026 edition). This is monthly update #127. An update (#19.1) has already been issued for the Automating Microsoft 365 with PowerShell eBook, which is available both separately and as part of the Office 365 for IT Pros eBook bundle.
Current subscribers can download the updated PDF and EPUB files through their Gumroad.com account or using the link in the receipt emailed after purchase. The link always accesses the latest book files. Further details of how to access book updates are available in our FAQ. Details of the changes in update #127 are in our change log.
Keeping the Book Relevant
We’re now halfway through the 2026 edition and thoughts turn to the shape of the next edition. As long-term readers know, we have evolved the book contents continuously over the years to reflect the current shape of first Office 365 and now Microsoft 365. At the start, we spent a lot of time on migration and synchronization because those were major needs at the time. Even though Microsoft has recently decided to enter the tenant-to-tenant space, migration isn’t as important as it once was, which is why it’s not a topic we cover now.
Along the same lines, the introduction of Teams in 2017 and the growing importance of Power Platform (now evolving towards agents and agentic processing) meant that these topics joined the fundamentals of Entra ID, Exchange Online, and SharePoint Online. We’ve also covered the evolution of video processing from the first Office 365 Video system to Stream to Clipchamp and tracked the changes in compliance technology from workload-dependent eDiscovery and retention processing to Microsoft Purview solutions. Finally, we took most of the PowerShell content from the book to form a separate PowerShell book focused mostly on how to work with the Microsoft Graph. That book now offers four times as much PowerShell content as we could fit into the main book.
All in all, it’s been a compelling and worthwhile challenge to keep the book relevant to the needs of tenant administrators. The trick is to continue this for the future.
What We Don’t Do
Before discussing what we might do with the book in the future, it’s important to set out some ground rules. Readers might have noticed that we do not cover some parts of Microsoft 365 and ask why this is the case. Well, our focus has always been on covering the basics because if administrators master the details of Entra ID, Exchange Online, SharePoint Online, and Teams, there’s a fair chance that their tenants will be secure and robust. Add in the basics of Purview compliance in retention, data loss prevention, information protection, and eDiscovery, and the tenant is highly functional.
We purposefully do not go near the Viva Suite. Since its introduction, Microsoft has killed two of the original Viva solutions (Viva Goals and Viva Topics) and it doesn’t seem to make much sense to devote much attention to solutions that are of minor interest to the overall Microsoft 365 community. The same is true for Purview extensions covering Microsoft Fabric: invaluable technology for those who need it but uninteresting to the wider community.
Covering Copilot
But things are changing. Artificial Intelligence has become part of everyday life. We all know the focus Microsoft has on the introduction of Copilot functionality across as many parts of Microsoft 365 as they can reach. So far, we have covered Microsoft 365 Copilot and agent technology at a level that we think is appropriate. The danger of devoting large swathes of the book to Copilot is that the content is interesting only if a tenant has Microsoft 365 Copilot licenses. The evidence to date is that those with licenses are not a high percentage of the Microsoft 365 user base.
One option is to continue on the current path. Another option is to create a chapter to bring together all aspects of AI for Microsoft 365. A third is to create a separate eBook covering AI and Power Platform like we did for PowerShell. We don’t have a good answer right now and will wait to see how the vision for Agent 365 and other components presented by Microsoft at the recent Ignite conference develop in reality.
On to Update #128
Planning for the next release will continue over the next few months alongside the monthly updates for the 2026 edition. There’s no rest as the flood of updates for Microsoft 365 ecosystem continues to flow.
FontSize different for numbers and strings in table object of mlreportgen.ppt.Table class
I have a standard MATLAB table with numeric and string values in different columns to integrate into pptx file
I create table object of mlreportgen.ppt.Table, set FontSize to 8 on the table and add it to the slide like this:
vt_table_obj = mlreportgen.ppt.Table(vt_table);
vt_table_obj.FontSize = ‘8pt’;
add(vt_slide, vt_table_obj);
But in presentation size 8 is applied only to text values, while numeric have size 10:
Why it doesn’t apply to the numbers?Or it need to be set further in children entities – TableRow, TableEntry, Paragpaph, Text – levels?I have a standard MATLAB table with numeric and string values in different columns to integrate into pptx file
I create table object of mlreportgen.ppt.Table, set FontSize to 8 on the table and add it to the slide like this:
vt_table_obj = mlreportgen.ppt.Table(vt_table);
vt_table_obj.FontSize = ‘8pt’;
add(vt_slide, vt_table_obj);
But in presentation size 8 is applied only to text values, while numeric have size 10:
Why it doesn’t apply to the numbers?Or it need to be set further in children entities – TableRow, TableEntry, Paragpaph, Text – levels? I have a standard MATLAB table with numeric and string values in different columns to integrate into pptx file
I create table object of mlreportgen.ppt.Table, set FontSize to 8 on the table and add it to the slide like this:
vt_table_obj = mlreportgen.ppt.Table(vt_table);
vt_table_obj.FontSize = ‘8pt’;
add(vt_slide, vt_table_obj);
But in presentation size 8 is applied only to text values, while numeric have size 10:
Why it doesn’t apply to the numbers?Or it need to be set further in children entities – TableRow, TableEntry, Paragpaph, Text – levels? table, mlreportgen, ppt MATLAB Answers — New Questions
Effect Size in fitglme
Hey, I am using a model which I have estimated with fitglme. I want to report effect sizes and confidence intervals. Would the best way be to report OR terms and their respective intervals?
I am calculating them the following way:
[beta,~,stats] = fixedEffects(glme_best);
CI = coefCI(glme_best);
names = glme_best.CoefficientNames(:);
OR = exp(beta);
CI_OR = exp(CI);
Is that correct or is there a better way to directly get OR terms in Matlab?
Best!Hey, I am using a model which I have estimated with fitglme. I want to report effect sizes and confidence intervals. Would the best way be to report OR terms and their respective intervals?
I am calculating them the following way:
[beta,~,stats] = fixedEffects(glme_best);
CI = coefCI(glme_best);
names = glme_best.CoefficientNames(:);
OR = exp(beta);
CI_OR = exp(CI);
Is that correct or is there a better way to directly get OR terms in Matlab?
Best! Hey, I am using a model which I have estimated with fitglme. I want to report effect sizes and confidence intervals. Would the best way be to report OR terms and their respective intervals?
I am calculating them the following way:
[beta,~,stats] = fixedEffects(glme_best);
CI = coefCI(glme_best);
names = glme_best.CoefficientNames(:);
OR = exp(beta);
CI_OR = exp(CI);
Is that correct or is there a better way to directly get OR terms in Matlab?
Best! fitglme, oddsratio MATLAB Answers — New Questions
Does split screen work in R2025b?
In MATLAB R2025b, in the Editor, I can’t get the split screen option to work at all. In R2024b and R2025a I can right-click on my code, select Split Screen | Top/Bottom, and the screen is split. Alternatively, I can select VIEW | Split Document | Top/Bottom, and I get the same thing. In R2025b these methods don’t seem to do anything for me. It’s not split and there are no error messages. However, if I open the Design App and go to the Code View, the split screen works ok.
Are there any settings that would affect this? Does anyone else have this issue?In MATLAB R2025b, in the Editor, I can’t get the split screen option to work at all. In R2024b and R2025a I can right-click on my code, select Split Screen | Top/Bottom, and the screen is split. Alternatively, I can select VIEW | Split Document | Top/Bottom, and I get the same thing. In R2025b these methods don’t seem to do anything for me. It’s not split and there are no error messages. However, if I open the Design App and go to the Code View, the split screen works ok.
Are there any settings that would affect this? Does anyone else have this issue? In MATLAB R2025b, in the Editor, I can’t get the split screen option to work at all. In R2024b and R2025a I can right-click on my code, select Split Screen | Top/Bottom, and the screen is split. Alternatively, I can select VIEW | Split Document | Top/Bottom, and I get the same thing. In R2025b these methods don’t seem to do anything for me. It’s not split and there are no error messages. However, if I open the Design App and go to the Code View, the split screen works ok.
Are there any settings that would affect this? Does anyone else have this issue? split screen, r2025b MATLAB Answers — New Questions
fitlm returns pvalues equal to NaN without zscoring
I can not understand which is the reason why the fitlm using variables without zscoring returns pvalues equal to NaN, whereas this does not happen using zscored variables. Below you can find the code I used:
medians_var1_scored = nanzscore(medians_var1);
medians_var2_scored = nanzscore(medians_var2);
medians_var1_scored_tr = medians_var1_scored’;
medians_var2_scored_tr = medians_var2_scored’;
tbl=table(medians_var1_scored_tr,medians_var2_scored_tr,’VariableNames’, …
{‘var1′,’var2’});
%build your model
mdl=fitlm(tbl,’var1 ~ var2′,’RobustOpts’,’on’)
which gives this result:
mdl =
Linear regression model (robust fit):
var1 ~ 1 + var2
Estimated Coefficients:
Estimate SE tStat pValue
_________ ________ ________ _______
(Intercept) 0.028674 0.094595 0.30312 0.76234
var2 -0.072919 0.094998 -0.76758 0.44429
Number of observations: 118, Error degrees of freedom: 116
Root Mean Squared Error: 1.03
R-squared: 0.00584, Adjusted R-Squared: -0.00273
F-statistic vs. constant model: 0.681, p-value = 0.411
If instead I use the original variables, I do:
tbl=table(medians_var1′,medians_var2′,’VariableNames’, …
{‘var1′,’var2’});
%build your model
mdl=fitlm(tbl,’var1 ~ var2′,’RobustOpts’,’on’)
and obtain:
mdl =
Linear regression model (robust fit):
var1 ~ 1 + var2
Estimated Coefficients:
Estimate SE tStat pValue
__________ __________ ______ __________
(Intercept) 0 0 NaN NaN
var2 8.6386e-13 2.1087e-14 40.966 7.8796e-71
Number of observations: 118, Error degrees of freedom: 117
Root Mean Squared Error: 31.4
R-squared: 0.263, Adjusted R-Squared: 0.263
F-statistic vs. constant model: Inf, p-value = NaN
I can’t understand why this happens. You can find attached both the original var1 and var2 variables and the zscored ones. But If I plot both of them, I obtain the same plot (just rescaled). Hence, there shouldn’t be a problem in the nanzscore function which is "hand written".I can not understand which is the reason why the fitlm using variables without zscoring returns pvalues equal to NaN, whereas this does not happen using zscored variables. Below you can find the code I used:
medians_var1_scored = nanzscore(medians_var1);
medians_var2_scored = nanzscore(medians_var2);
medians_var1_scored_tr = medians_var1_scored’;
medians_var2_scored_tr = medians_var2_scored’;
tbl=table(medians_var1_scored_tr,medians_var2_scored_tr,’VariableNames’, …
{‘var1′,’var2’});
%build your model
mdl=fitlm(tbl,’var1 ~ var2′,’RobustOpts’,’on’)
which gives this result:
mdl =
Linear regression model (robust fit):
var1 ~ 1 + var2
Estimated Coefficients:
Estimate SE tStat pValue
_________ ________ ________ _______
(Intercept) 0.028674 0.094595 0.30312 0.76234
var2 -0.072919 0.094998 -0.76758 0.44429
Number of observations: 118, Error degrees of freedom: 116
Root Mean Squared Error: 1.03
R-squared: 0.00584, Adjusted R-Squared: -0.00273
F-statistic vs. constant model: 0.681, p-value = 0.411
If instead I use the original variables, I do:
tbl=table(medians_var1′,medians_var2′,’VariableNames’, …
{‘var1′,’var2’});
%build your model
mdl=fitlm(tbl,’var1 ~ var2′,’RobustOpts’,’on’)
and obtain:
mdl =
Linear regression model (robust fit):
var1 ~ 1 + var2
Estimated Coefficients:
Estimate SE tStat pValue
__________ __________ ______ __________
(Intercept) 0 0 NaN NaN
var2 8.6386e-13 2.1087e-14 40.966 7.8796e-71
Number of observations: 118, Error degrees of freedom: 117
Root Mean Squared Error: 31.4
R-squared: 0.263, Adjusted R-Squared: 0.263
F-statistic vs. constant model: Inf, p-value = NaN
I can’t understand why this happens. You can find attached both the original var1 and var2 variables and the zscored ones. But If I plot both of them, I obtain the same plot (just rescaled). Hence, there shouldn’t be a problem in the nanzscore function which is "hand written". I can not understand which is the reason why the fitlm using variables without zscoring returns pvalues equal to NaN, whereas this does not happen using zscored variables. Below you can find the code I used:
medians_var1_scored = nanzscore(medians_var1);
medians_var2_scored = nanzscore(medians_var2);
medians_var1_scored_tr = medians_var1_scored’;
medians_var2_scored_tr = medians_var2_scored’;
tbl=table(medians_var1_scored_tr,medians_var2_scored_tr,’VariableNames’, …
{‘var1′,’var2’});
%build your model
mdl=fitlm(tbl,’var1 ~ var2′,’RobustOpts’,’on’)
which gives this result:
mdl =
Linear regression model (robust fit):
var1 ~ 1 + var2
Estimated Coefficients:
Estimate SE tStat pValue
_________ ________ ________ _______
(Intercept) 0.028674 0.094595 0.30312 0.76234
var2 -0.072919 0.094998 -0.76758 0.44429
Number of observations: 118, Error degrees of freedom: 116
Root Mean Squared Error: 1.03
R-squared: 0.00584, Adjusted R-Squared: -0.00273
F-statistic vs. constant model: 0.681, p-value = 0.411
If instead I use the original variables, I do:
tbl=table(medians_var1′,medians_var2′,’VariableNames’, …
{‘var1′,’var2’});
%build your model
mdl=fitlm(tbl,’var1 ~ var2′,’RobustOpts’,’on’)
and obtain:
mdl =
Linear regression model (robust fit):
var1 ~ 1 + var2
Estimated Coefficients:
Estimate SE tStat pValue
__________ __________ ______ __________
(Intercept) 0 0 NaN NaN
var2 8.6386e-13 2.1087e-14 40.966 7.8796e-71
Number of observations: 118, Error degrees of freedom: 117
Root Mean Squared Error: 31.4
R-squared: 0.263, Adjusted R-Squared: 0.263
F-statistic vs. constant model: Inf, p-value = NaN
I can’t understand why this happens. You can find attached both the original var1 and var2 variables and the zscored ones. But If I plot both of them, I obtain the same plot (just rescaled). Hence, there shouldn’t be a problem in the nanzscore function which is "hand written". fitlm, zscore, pvalue MATLAB Answers — New Questions









