Category: News
Problems encountered when using sph2cart
Here is the code:
clear all
clc
close all
load angles.mat
load vertices.mat
[vectors(:,1), vectors(:,2), vectors(:,3)] = sph2cart(angle_phi_theta(:,1), angle_phi_theta(:,2), 1);
quiver3(vertex_segment(:,1),vertex_segment(:,2),vertex_segment(:,3),…
vectors(:,1),vectors(:,2),vectors(:,3),0.8,’Color’,’green’,’LineWidth’,1);hold on;
The results:
Problem: I think the resulting vectors should converge uniformly or diverge uniformly, but why do they alternate like this? What went wrong?Here is the code:
clear all
clc
close all
load angles.mat
load vertices.mat
[vectors(:,1), vectors(:,2), vectors(:,3)] = sph2cart(angle_phi_theta(:,1), angle_phi_theta(:,2), 1);
quiver3(vertex_segment(:,1),vertex_segment(:,2),vertex_segment(:,3),…
vectors(:,1),vectors(:,2),vectors(:,3),0.8,’Color’,’green’,’LineWidth’,1);hold on;
The results:
Problem: I think the resulting vectors should converge uniformly or diverge uniformly, but why do they alternate like this? What went wrong? Here is the code:
clear all
clc
close all
load angles.mat
load vertices.mat
[vectors(:,1), vectors(:,2), vectors(:,3)] = sph2cart(angle_phi_theta(:,1), angle_phi_theta(:,2), 1);
quiver3(vertex_segment(:,1),vertex_segment(:,2),vertex_segment(:,3),…
vectors(:,1),vectors(:,2),vectors(:,3),0.8,’Color’,’green’,’LineWidth’,1);hold on;
The results:
Problem: I think the resulting vectors should converge uniformly or diverge uniformly, but why do they alternate like this? What went wrong? coordinate transformation, sph2cart, vectors MATLAB Answers — New Questions
Entra ID to Disable Service Principal-Less Authentication
Block for Service Principal-Less Authentication in March 2026
One of the latest announcements from Microsoft engineering groups to improve the overall security of their cloud infrastructure is Entra’s decision to halt service principal-less authentication from March 2026. It’s an example of eradicating old practices that are unacceptable in today’s threat environment.
Service principal-less authentication happens when an enterprise app (aka a multitenant app) is used without a service principal in the host tenant. Enterprise apps are created by Microsoft and other software vendors. The Microsoft Graph Command Line Tools app (used to connect to the Microsoft Graph with PowerShell) is an example of a multitenant app. In this case, the Microsoft Graph Command Line Tools app has a service principal in the host tenant, which the app uses to hold the set of delegated Graph permissions available in interactive PowerShell sessions.
The Lack of a Service Principal
When an enterprise app doesn’t have a service principal, it probably means that the app only needs a basic level of authentication to allow the app to run. Post authentication, the app takes care of whatever processing it needs to do without using tenant-assigned permissions. Microsoft wants to block this kind of authentication saying that “Service principal-less authentication can be abused if the resource applications (i.e. APIs) perform incomplete validations.” Microsoft says that they have verified that validations aren’t vulnerable to service principal-less authentication, but they want to block the route now to avoid the possibility of a gap appearing in the future.
Reading between the lines, Microsoft doesn’t want apps to simply appear in a tenant, have a fairly loose connection to Entra ID, and be able to process data without administrative oversight.
After the block is active from March 2026, Entra ID will not allow enterprise apps to authenticate if they don’t have a matching service principal. It’s therefore wise to check tenants to identify any apps in this category to allow the problem to be mitigated.
Finding Problem Enterprise Apps
In their documentation, Microsoft explains how to use sign-in logs to identify problem enterprise apps. The advice focuses on looking for information through the Service principal sign-ins tab. I didn’t find anything there, but I found some interesting results by scanning sign-in logs for interactive connections. This code looks for sign-ins that have a service principal of ‘00000000-0000-0000-0000-000000000000’ and reports what it finds (this article describes a more comprehensive script to report service principal sign-ins):
$Uri = "https://graph.microsoft.com/beta/auditLogs/signIns?`$filter=servicePrincipalId eq '00000000-0000-0000-0000-000000000000'" [array]$Data = Invoke-MgGraphRequest -Uri $Uri -Method Get $Data = $Data.Value $Data | Group-Object ResourceDisplayName -NoElement | Sort-Object Count | Format-Table Name, Count Name Count ---- ----- Exchange Admin Center 1 Microsoft 365 App Catalog Services 1 Microsoft Activity Feed Service 1 Microsoft Office 365 Portal 1 OfficeHome 1 Password Breach Authenticator 1 Microsoft Edge Auth 3 Account Linking 5 IrisSelectionFrontDoor 5 Office365 Shell WCSS-Server 5 6 Augmentation Loop 6 Microsoft News Feed 10 Office 365 Exchange Microservices 10 Edge Sync 14
A bunch of Microsoft apps are in the collection, many of which appear in the Entra documentation explaining how to identify first-party apps. In addition, there’s an odd entry for a nameless app that comes from the Microsoft Services tenant (home tenant identifier f8cdef31-a31e-4b4a-93e4-5f571e91255a with an application identifier of 29d9ed98-a469-4536-ade2-f981bc1d605e). The default domain name for the app is sharepoint.com, so it’s reasonable to conclude that it’s something to do with SharePoint Online.
Figure 1 shows the details of a sign-in for the Office365 Shell WCSS-Server app, generated when I accessed the SharePoint Online admin center.

The Office365 Shell WCSS-Server app is browser code that runs whenever a user navigates to most Microsoft 365 browser apps. The shell, also known as the suite header, is shared code that loads as part of almost all workloads, including SharePoint, OneDrive, Outlook, and Viva Engage. The code is probably performing some internal processing that doesn’t need the tenant to grant permissions, so it doesn’t have a service principal.
Mitigating the Lack of a Service Principal
All of this is very interesting, but Microsoft’s mitigation for service principal-less authentication is for tenants to create a service principal for each of the affected apps. Given that so many Microsoft apps seem to be affected, does this mean that tenant administrators will have to create service principals for these apps?
The answer is no. The Entra ID team confirmed to me that they’ll take care of Microsoft apps and will update the documentation to this effect. The mitigation requirement only arises for third-party enterprise apps. The call to action remains to check if any of these apps exist in your tenant, and if you find some examples, it’s time to contact the app owners to ask them how they plan to function when service principal-less authentication no longer works.
So much change, all the time. It’s a challenge to stay abreast of all the updates Microsoft makes across the Microsoft 365 ecosystem, including Entra ID. Subscribe to the Office 365 for IT Pros eBook to receive monthly insights into what happens, why it happens, and what new features and capabilities mean for your tenant.
General Availability of Indonesia Central Cloud Region
Baca dalam Bahasa Indonesia di sini
Microsoft’s first cloud region in Indonesia, called Indonesia Central, is now generally available. This cloud region includes three availability zones, which provide independent power, cooling and networking for higher availability needs.
This new region is designed to meet the highest standards of security, privacy, and regulatory compliance; empowering organizations across the world to innovate from and for Indonesia with low-latency, connectivity, and resiliency.
Starting today, organizations can choose the “Indonesia Central” region in their Azure portal.
Join us for the launch of Indonesia Central cloud region during the AI Tour Jakarta on 27 May 2025, hosted by Microsoft Cloud + AI Executive Vice President Scott Guthrie. For more information, visit Microsoft AI Tour Jakarta website.
###
General Availability Cloud Region Indonesia Central
Read in English here
Cloud region pertama Microsoft di Indonesia, yaitu Indonesia Central, kini telah tersedia secara umum (generally available). Cloud region ini mencakup tiga availability zones yang menyediakan daya, pendinginan, dan jaringan independen untuk ketersediaan yang lebih tinggi.
Cloud region baru ini dirancang untuk memenuhi standar tertinggi keamanan, privasi, dan kepatuhan regulasi; memberdayakan organisasi dari berbagai belahan dunia untuk berinovasi dari dan untuk Indonesia dengan latensi rendah, konektivitas, serta resiliensi.
Mulai hari ini, organisasi dapat memilih region “Indonesia Central” di portal Azure mereka.
Bergabunglah dengan kami pada peluncuran cloud region Indonesia Central di AI Tour Jakarta tanggal 27 Mei 2025, yang akan dibuka oleh Microsoft Cloud + AI Executive Vice President Scott Guthrie. Untuk informasi lebih lanjut, kunjungi situs web Microsoft AI Tour Jakarta.
###
i need help in solving this documentation in mathlab “Fault Detection and Localization in Three-Phase Power Transmission Using Deep Signal Anomaly Detector in Simulink” thanks
i am trying to build the exact modle listed on the site but finding challenges navigating through the steps provided .the topic is" Fault Detection and Localization in Three-Phase Power Transmission Using Deep Signal Anomaly Detector in Simulink". i would be very glad if someone can assist me do it. or if anyone has already done it. the person can kindly share his file to assist me. thank youi am trying to build the exact modle listed on the site but finding challenges navigating through the steps provided .the topic is" Fault Detection and Localization in Three-Phase Power Transmission Using Deep Signal Anomaly Detector in Simulink". i would be very glad if someone can assist me do it. or if anyone has already done it. the person can kindly share his file to assist me. thank you i am trying to build the exact modle listed on the site but finding challenges navigating through the steps provided .the topic is" Fault Detection and Localization in Three-Phase Power Transmission Using Deep Signal Anomaly Detector in Simulink". i would be very glad if someone can assist me do it. or if anyone has already done it. the person can kindly share his file to assist me. thank you #simulink, #deep signal anomaly detector #matlab MATLAB Answers — New Questions
Cannot get simulation to run after 2024 upgrade from 2023.
I upgraded from MATLAB/SIMULINK 2023 to 2024. When trying to rerun the simulation that had run in 2023 I get:
"
Error:Unable to update models referenced by ‘plant’.
Caused by:
The corresponding ‘decay_heat_SF.tlc’ file for the MATLAB S-function ‘decay_heat_SF’ in block ‘decay_heat/Level-2 MATLAB S-Function’ must be located in the current working directory, the MATLAB S-function directory ‘D:OneDriveUSNCControl DesignDecay Heat’, or the directory ‘D:OneDriveUSNCControl DesignDecay Heattlc_c’
"
Under 2023b no "decay_heat_SF.tlc" was generated or needed.
When running "decay_heat_SF" as a standalone model it runs. When added as a sub-model in "plant" it gives this error.
Can someone help?I upgraded from MATLAB/SIMULINK 2023 to 2024. When trying to rerun the simulation that had run in 2023 I get:
"
Error:Unable to update models referenced by ‘plant’.
Caused by:
The corresponding ‘decay_heat_SF.tlc’ file for the MATLAB S-function ‘decay_heat_SF’ in block ‘decay_heat/Level-2 MATLAB S-Function’ must be located in the current working directory, the MATLAB S-function directory ‘D:OneDriveUSNCControl DesignDecay Heat’, or the directory ‘D:OneDriveUSNCControl DesignDecay Heattlc_c’
"
Under 2023b no "decay_heat_SF.tlc" was generated or needed.
When running "decay_heat_SF" as a standalone model it runs. When added as a sub-model in "plant" it gives this error.
Can someone help? I upgraded from MATLAB/SIMULINK 2023 to 2024. When trying to rerun the simulation that had run in 2023 I get:
"
Error:Unable to update models referenced by ‘plant’.
Caused by:
The corresponding ‘decay_heat_SF.tlc’ file for the MATLAB S-function ‘decay_heat_SF’ in block ‘decay_heat/Level-2 MATLAB S-Function’ must be located in the current working directory, the MATLAB S-function directory ‘D:OneDriveUSNCControl DesignDecay Heat’, or the directory ‘D:OneDriveUSNCControl DesignDecay Heattlc_c’
"
Under 2023b no "decay_heat_SF.tlc" was generated or needed.
When running "decay_heat_SF" as a standalone model it runs. When added as a sub-model in "plant" it gives this error.
Can someone help? upgrade, tlc MATLAB Answers — New Questions
Bayesian neural network for nonlinear model identification
Hello everyone,
I’m interested in using Bayesian neural networks to model a dynamical system, similar to the examples presented here: https://www.mathworks.com/help/ident/nonlinear-model-identification.html.
So far, the only relevant resource I’ve found is this page: https://www.mathworks.com/help/deeplearning/ug/train-bayesian-neural-network.html, which demonstrates how to train a Bayesian neural network to predict the rotation of handwritten digits.
Would the methodology and functions shown in that example be suitable for my case? Specifically, can they be adapted to train a model using time series data—i.e., sequences of input and output over time?
Thank you in advance for your support!
MarcoHello everyone,
I’m interested in using Bayesian neural networks to model a dynamical system, similar to the examples presented here: https://www.mathworks.com/help/ident/nonlinear-model-identification.html.
So far, the only relevant resource I’ve found is this page: https://www.mathworks.com/help/deeplearning/ug/train-bayesian-neural-network.html, which demonstrates how to train a Bayesian neural network to predict the rotation of handwritten digits.
Would the methodology and functions shown in that example be suitable for my case? Specifically, can they be adapted to train a model using time series data—i.e., sequences of input and output over time?
Thank you in advance for your support!
Marco Hello everyone,
I’m interested in using Bayesian neural networks to model a dynamical system, similar to the examples presented here: https://www.mathworks.com/help/ident/nonlinear-model-identification.html.
So far, the only relevant resource I’ve found is this page: https://www.mathworks.com/help/deeplearning/ug/train-bayesian-neural-network.html, which demonstrates how to train a Bayesian neural network to predict the rotation of handwritten digits.
Would the methodology and functions shown in that example be suitable for my case? Specifically, can they be adapted to train a model using time series data—i.e., sequences of input and output over time?
Thank you in advance for your support!
Marco bayes, neural networks, system identification, deep learning, uncertainty quantification MATLAB Answers — New Questions
How to disable Tab completion in MATLAB Editor and Command Window
Is it possible to disable Tab completion in the MATLAB Editor and Command Window?Is it possible to disable Tab completion in the MATLAB Editor and Command Window? Is it possible to disable Tab completion in the MATLAB Editor and Command Window? disable, tab, completion MATLAB Answers — New Questions
Microsoft Attempts to Fix Microsoft Graph PowerShell SDK Problem with Azure Automation
.NET Dependencies Stop Microsoft Graph PowerShell SDK Authentication in Runbooks
As anyone who keeps tabs on the Microsoft Graph PowerShell SDK, the V2.26 release was a disaster. Poor testing and other failures let obvious problems escape into customer environments. To be fair to Microsoft, the development group fixed some of the more grievous problems and issued version 2.26.1 a week or so after V2.26 appeared.
Alas, V2.26.1 came with its own set of flaws, notably breaking Azure Automation runbooks that use PowerShell V7.1 and V7.2 because the SDK developers decided to remove support for .NET 6. Cue the infamous “invalid JWT access token” issue (Figure 1).

All in all, the Microsoft Graph PowerShell SDK descended into grand farce, and no one knew what would happen next. The problem only happens for runbooks based on PowerShell V7.1 and V7.2. It doesn’t arise when runbooks use PowerShell V5.1.
Microsoft’s Solution – Azure Automation Support for PowerShell V7.4
On April 10, 2025, Microsoft laid out their plans to clean up the mess. Explaining that the root cause of the problem in V2.26.1 is a component conflict between the Exchange Online PowerShell module and the Microsoft Graph PowerShell SDK that prevents the Connect-MgGraph cmdlet working, Microsoft says that the issue is resolved when Azure Automation is upgraded to support PowerShell V7.4 (based on .NET 8). A preview of PowerShell V7.4 support is available today.
Microsoft doesn’t say when Azure Automation will fully support PowerShell V7.4 support in a generally available version. However, they do say that the next release of the Microsoft Graph PowerShell SDK is “expected later this month.” Given the recent problems in SDK versions, it’s inconceivable that Microsoft would push out a new version of the SDK without full and stable support for Azure Automation, and that means PowerShell V7.4 support.
In the interim, if you have Azure Automation runbooks, stay with Microsoft Graph PowerShell SDK V2.25.
Work Remains to be Done
Assuming that Microsoft delivers a new version of the Microsoft Graph PowerShell SDK that delivers “enhanced stability” (couldn’t be worse than the last two versions), “compatibility and performance” and address the many issues reported in the SDK GitHub repository (163 open at present), is that the end of this saga?
I don’t think so. The history of the Microsoft Graph PowerShell SDK is littered with poor quality and buggy releases. The clash with the Exchange Online PowerShell module speaks of a failure within Microsoft to coordinate updates to critical PowerShell modules used by Microsoft 365 customers. Given the closely-connected nature of Microsoft 365, it’s unacceptable for engineering groups to make changes to PowerShell modules without understanding if their updates will impact modules like Teams, SharePoint, and Exchange.
Quality instead of Fast-Paced Releases
Customers need a sustained run of high-quality Microsoft Graph PowerShell SDK releases to rebuild faith. In the past, Microsoft issued new SDK versions on a monthly cadence in an attempt to keep up with changes in Graph APIs. That cadence is too rapid. Stability should be the name of the game from here on with focus on delivering a high-quality quarterly SDK. Lessening the pace will permit the SDK engineers to coordinate better with their peers and burn down the swelling bug list. If people need to use a new Graph API, there’s no need to wait for Microsoft to build an SDK cmdlet because they can always use the API via the Invoke-MgGraphRequest cmdlet.
Over three million downloads now occur for new SDK versions. It’s time that Microsoft treats the Microsoft Graph PowerShell SDK as what it is: a serious piece of the PowerShell framework for Microsoft 365 automation.
assigning values with []
[a,b]=[1,2]
Why doesn’t this work? How to rewrite into what is easier and more succinct than a=1; b=2?[a,b]=[1,2]
Why doesn’t this work? How to rewrite into what is easier and more succinct than a=1; b=2? [a,b]=[1,2]
Why doesn’t this work? How to rewrite into what is easier and more succinct than a=1; b=2? matlab MATLAB Answers — New Questions
Unknown error during installation MATLAB2015a
During the installation of Matlab 2015a, at a level of 99% a pop-up window appeared with the following notification: " Unknown Error. The application encountered an unexpected error and needs to close. You may want to try re-installing your product(s). More information can be found at C:users…Tempmathworks_cform.log".
Why does this error appear during installation?
How can I solve that?During the installation of Matlab 2015a, at a level of 99% a pop-up window appeared with the following notification: " Unknown Error. The application encountered an unexpected error and needs to close. You may want to try re-installing your product(s). More information can be found at C:users…Tempmathworks_cform.log".
Why does this error appear during installation?
How can I solve that? During the installation of Matlab 2015a, at a level of 99% a pop-up window appeared with the following notification: " Unknown Error. The application encountered an unexpected error and needs to close. You may want to try re-installing your product(s). More information can be found at C:users…Tempmathworks_cform.log".
Why does this error appear during installation?
How can I solve that? error, installation MATLAB Answers — New Questions
Minor mistake Writing a function but error
Hello just a quick question, I am writing a code but an error keeps poping up for the function I entered
By any chance would you know why it keeps coming up as a red warning
f=@ (1./x)+(sqrt(x).*exp(x));Hello just a quick question, I am writing a code but an error keeps poping up for the function I entered
By any chance would you know why it keeps coming up as a red warning
f=@ (1./x)+(sqrt(x).*exp(x)); Hello just a quick question, I am writing a code but an error keeps poping up for the function I entered
By any chance would you know why it keeps coming up as a red warning
f=@ (1./x)+(sqrt(x).*exp(x)); function, error, display MATLAB Answers — New Questions
Trying to add callback function in class
I am attempting to create a class the will have two line ROI objects. This class should have a callback function for when the lines are moved by the user. I am able to add a listener to the lines but only if the callback function is static.
Is it possible to do this without using a static method? Ultimatly I would like to use the callback method to compare the positions of the two lines as one of them is moved.
classdef imageRange < handle
properties
region double
line1
line2
rect
X double
end
methods
function obj = imageRange(axes, dataAxes)
x = dataAxes{1,4};
y = dataAxes{2,4};
midpoint = mean([x(1),x(3)]);
obj.X = floor(midpoint);
obj.rect = rectangle(axes,’Position’,[obj.X,y(1),…
ceil(midpoint)-floor(midpoint), y(3) – y(1)]);
obj.rect.EdgeColor = [0,0,0,0];
obj.rect.FaceColor = [.5,.5,.5];
obj.rect.FaceAlpha = .1;
obj.line1 = drawline(axes,’Position’,[floor(midpoint), y(1); …
floor(midpoint), y(3)],’Color’,[0.6350 0.0780 0.1840], …
‘InteractionsAllowed’,’translate’, …
‘MarkerSize’,.1, …
‘LineWidth’,1);
addlistener(obj.line1, ‘MovingROI’, @(src,event)obj.allevents(src,event));
obj.line2 = drawline(axes,’Position’,[ceil(midpoint), y(1); …
ceil(midpoint), y(3)],’Color’,[0 0.4470 0.7410], …
‘InteractionsAllowed’,’translate’, …
‘MarkerSize’,.1, …
‘LineWidth’,1);
obj.region = dataAxes{1,5};
end
end
methods (Static)
function allevents(src,event)
event.PreviousPosition(1,1)
end
end
endI am attempting to create a class the will have two line ROI objects. This class should have a callback function for when the lines are moved by the user. I am able to add a listener to the lines but only if the callback function is static.
Is it possible to do this without using a static method? Ultimatly I would like to use the callback method to compare the positions of the two lines as one of them is moved.
classdef imageRange < handle
properties
region double
line1
line2
rect
X double
end
methods
function obj = imageRange(axes, dataAxes)
x = dataAxes{1,4};
y = dataAxes{2,4};
midpoint = mean([x(1),x(3)]);
obj.X = floor(midpoint);
obj.rect = rectangle(axes,’Position’,[obj.X,y(1),…
ceil(midpoint)-floor(midpoint), y(3) – y(1)]);
obj.rect.EdgeColor = [0,0,0,0];
obj.rect.FaceColor = [.5,.5,.5];
obj.rect.FaceAlpha = .1;
obj.line1 = drawline(axes,’Position’,[floor(midpoint), y(1); …
floor(midpoint), y(3)],’Color’,[0.6350 0.0780 0.1840], …
‘InteractionsAllowed’,’translate’, …
‘MarkerSize’,.1, …
‘LineWidth’,1);
addlistener(obj.line1, ‘MovingROI’, @(src,event)obj.allevents(src,event));
obj.line2 = drawline(axes,’Position’,[ceil(midpoint), y(1); …
ceil(midpoint), y(3)],’Color’,[0 0.4470 0.7410], …
‘InteractionsAllowed’,’translate’, …
‘MarkerSize’,.1, …
‘LineWidth’,1);
obj.region = dataAxes{1,5};
end
end
methods (Static)
function allevents(src,event)
event.PreviousPosition(1,1)
end
end
end I am attempting to create a class the will have two line ROI objects. This class should have a callback function for when the lines are moved by the user. I am able to add a listener to the lines but only if the callback function is static.
Is it possible to do this without using a static method? Ultimatly I would like to use the callback method to compare the positions of the two lines as one of them is moved.
classdef imageRange < handle
properties
region double
line1
line2
rect
X double
end
methods
function obj = imageRange(axes, dataAxes)
x = dataAxes{1,4};
y = dataAxes{2,4};
midpoint = mean([x(1),x(3)]);
obj.X = floor(midpoint);
obj.rect = rectangle(axes,’Position’,[obj.X,y(1),…
ceil(midpoint)-floor(midpoint), y(3) – y(1)]);
obj.rect.EdgeColor = [0,0,0,0];
obj.rect.FaceColor = [.5,.5,.5];
obj.rect.FaceAlpha = .1;
obj.line1 = drawline(axes,’Position’,[floor(midpoint), y(1); …
floor(midpoint), y(3)],’Color’,[0.6350 0.0780 0.1840], …
‘InteractionsAllowed’,’translate’, …
‘MarkerSize’,.1, …
‘LineWidth’,1);
addlistener(obj.line1, ‘MovingROI’, @(src,event)obj.allevents(src,event));
obj.line2 = drawline(axes,’Position’,[ceil(midpoint), y(1); …
ceil(midpoint), y(3)],’Color’,[0 0.4470 0.7410], …
‘InteractionsAllowed’,’translate’, …
‘MarkerSize’,.1, …
‘LineWidth’,1);
obj.region = dataAxes{1,5};
end
end
methods (Static)
function allevents(src,event)
event.PreviousPosition(1,1)
end
end
end static methods, class MATLAB Answers — New Questions
Reverse 2D-lookup table in Simulink
I tried to implement a reverse 2D lookup table in Simulink according to the following description by Fangjun Jiang:
https://de.mathworks.com/matlabcentral/answers/12809-reverse-2d-lookup-table?s_tid=sug_su
First, I wrote the following Matlab code for testing and it does exactly what I expect:
% Absolute eccentricity range
e = 0:1e-06:1.5e-05;
% Piston phase angle range
rad = 0:2*pi/400:2*pi;
% Load capacity matrix
load(‘Tragkraft_alpha_AK_kpl_V03.mat’);
load_cap = Tragkraft_alpha_AK_kpl_V03;
% Instant piston phase angle
rad_dyn = 3.12588469032184;
% Reverse 2D lookup table for load capacity
lookup = interp2(e,rad,load_cap,e,rad_dyn);
% Instant load capacity
load_dyn = 659.331131439451;
% Instant absolute eccentricity
e_dyn = interp1(lookup,e,load_dyn);
After that, I tried to implement it in Simulink using a MATLAB function block with the following code:
function e_dyn = fcn(rad_dyn, load_dyn, load_cap)
% absolute eccentricity range
e = 0:1e-06:1.5e-05;
% piston phase angle range
rad = 0:2*pi/400:2*pi;
% 2D lookup table for load capacity
lookup = interp2(e,rad,load_cap,e,rad_dyn);
% instant absolute eccentricity
e_dyn=interp1(lookup,e,load_dyn);
However, this leads to the following error message that I don’t really understand. In my understanding the Simulink model should do exactly the same as the Matlab code. Can anybody tell me how to fix that in Simulink?I tried to implement a reverse 2D lookup table in Simulink according to the following description by Fangjun Jiang:
https://de.mathworks.com/matlabcentral/answers/12809-reverse-2d-lookup-table?s_tid=sug_su
First, I wrote the following Matlab code for testing and it does exactly what I expect:
% Absolute eccentricity range
e = 0:1e-06:1.5e-05;
% Piston phase angle range
rad = 0:2*pi/400:2*pi;
% Load capacity matrix
load(‘Tragkraft_alpha_AK_kpl_V03.mat’);
load_cap = Tragkraft_alpha_AK_kpl_V03;
% Instant piston phase angle
rad_dyn = 3.12588469032184;
% Reverse 2D lookup table for load capacity
lookup = interp2(e,rad,load_cap,e,rad_dyn);
% Instant load capacity
load_dyn = 659.331131439451;
% Instant absolute eccentricity
e_dyn = interp1(lookup,e,load_dyn);
After that, I tried to implement it in Simulink using a MATLAB function block with the following code:
function e_dyn = fcn(rad_dyn, load_dyn, load_cap)
% absolute eccentricity range
e = 0:1e-06:1.5e-05;
% piston phase angle range
rad = 0:2*pi/400:2*pi;
% 2D lookup table for load capacity
lookup = interp2(e,rad,load_cap,e,rad_dyn);
% instant absolute eccentricity
e_dyn=interp1(lookup,e,load_dyn);
However, this leads to the following error message that I don’t really understand. In my understanding the Simulink model should do exactly the same as the Matlab code. Can anybody tell me how to fix that in Simulink? I tried to implement a reverse 2D lookup table in Simulink according to the following description by Fangjun Jiang:
https://de.mathworks.com/matlabcentral/answers/12809-reverse-2d-lookup-table?s_tid=sug_su
First, I wrote the following Matlab code for testing and it does exactly what I expect:
% Absolute eccentricity range
e = 0:1e-06:1.5e-05;
% Piston phase angle range
rad = 0:2*pi/400:2*pi;
% Load capacity matrix
load(‘Tragkraft_alpha_AK_kpl_V03.mat’);
load_cap = Tragkraft_alpha_AK_kpl_V03;
% Instant piston phase angle
rad_dyn = 3.12588469032184;
% Reverse 2D lookup table for load capacity
lookup = interp2(e,rad,load_cap,e,rad_dyn);
% Instant load capacity
load_dyn = 659.331131439451;
% Instant absolute eccentricity
e_dyn = interp1(lookup,e,load_dyn);
After that, I tried to implement it in Simulink using a MATLAB function block with the following code:
function e_dyn = fcn(rad_dyn, load_dyn, load_cap)
% absolute eccentricity range
e = 0:1e-06:1.5e-05;
% piston phase angle range
rad = 0:2*pi/400:2*pi;
% 2D lookup table for load capacity
lookup = interp2(e,rad,load_cap,e,rad_dyn);
% instant absolute eccentricity
e_dyn=interp1(lookup,e,load_dyn);
However, this leads to the following error message that I don’t really understand. In my understanding the Simulink model should do exactly the same as the Matlab code. Can anybody tell me how to fix that in Simulink? lookup table, reverse, simulink MATLAB Answers — New Questions
Invalid initial condition error
I have to solve the sistem of differential equation odesys with the condition imposed in bc vector. I obtain the "Invalid Initial Condition" at the line where v is defined, even if the domain for the boundary condition is correct. I must keep it a symbolic solution and a0 is a costant.
%% ANALYTICAL MODEL FOR A DCB SPECIMEN UNDER THE CONDITION OF PRESCRIBED DISPLACEMENTS
%% Linear Elastic Phase
%———
syms x d v0(x) v1(x) v2(x) Lcz
%———
phi0 = -diff(v0,x);
M0 = E*I*diff(v0,x,2);
T0 = E*I*diff(v0,x,3);
phi1 = -diff(v1,x);
M1 = E*I*diff(v1,x,2);
T1 = E*I*diff(v1,x,3);
phi2 = -diff(v2,x);
M2 = E*I*diff(v2,x,2);
T2 = E*I*diff(v2,x,3);
%———
ode_0 = diff(v0,x,4) == 0;
ode_1 = diff(v1,x,4) – 2*w*(lambda^2)*diff(v1,x,2) + (lambda^4)*v1 == 0;
ode_2 = diff(v2,x,4) + 2*ps*(k^2)*diff(v2,x,2) – k^4*(v2 – d_c/2) == 0;
%———
syms xL xR xI
xL = -a0 – Lcz;
xI = -Lcz;
xR = L – a0 – Lcz;
c1 = v0(xL) == d/2;
c2 = M0(xL) == 0;
c3 = v0(xI) == v2(xI);
c4 = phi0(xI) == phi2(xI);
c5 = M0(xI) == M2(xI);
c6 = T0(xI) == T2(xI);
c7 = v1(0) == v2(0);
c8 = phi1(0) == phi2(0);
c9 = M1(0) == M2(0);
c10 = T1(0) == T2(0);
c11 = v1(xR) == 0;
c12 = phi1(xR) == 0;
%———
odesys = [ode_0; ode_1; ode_2];
bc = [c1; c2; c3; c4; c5; c6; c7; c8; c9; c10; c11; c12];
v = dsolve(odesys, bc);
%———
v1_sol(x,d,Lcz) = simplify(v.v1);
v0_sol(x,d,Lcz) = simplify(v.v0);
v2_sol(x,d,Lcz) = simplify(v.v2);
phi0_sol(x,d,Lcz) = diff(v0_sol,x);
phi1_sol(x,d,Lcz) = diff(v1_sol,x);
phi2_sol(x,d,Lcz) = diff(v2_sol,x);
M0_sol(x,d,Lcz) = E*I*diff(v0_sol,x,2);
M1_sol(x,d,Lcz) = E*I*diff(v1_sol,x,2);
M2_sol(x,d,Lcz) = E*I*diff(v2_sol,x,2);
T0_sol(x,d,Lcz) = E*I*diff(v0_sol,x,3);
T1_sol(x,d,Lcz) = E*I*diff(v1_sol,x,3);
T2_sol(x,d,Lcz) = E*I*diff(v2_sol,x,3);
%———
d_lim = solve(v0_sol(0,d,0) == d_0/2,d);
% d_max = solve(v0_sol(0,d,0) == d_0/2,d);
% Lcz_max = solve(v2_sol(-Lcz,d_max,Lcz) – d_c/2 == 0, x,[0 50]);
[d_max, Lcz_max] = solve([v1_sol(0,d,Lcz) – d_0/2 == 0, v2_sol(-Lcz,d_max,Lcz) – d_c/2 == 0],[d,Lcz]);I have to solve the sistem of differential equation odesys with the condition imposed in bc vector. I obtain the "Invalid Initial Condition" at the line where v is defined, even if the domain for the boundary condition is correct. I must keep it a symbolic solution and a0 is a costant.
%% ANALYTICAL MODEL FOR A DCB SPECIMEN UNDER THE CONDITION OF PRESCRIBED DISPLACEMENTS
%% Linear Elastic Phase
%———
syms x d v0(x) v1(x) v2(x) Lcz
%———
phi0 = -diff(v0,x);
M0 = E*I*diff(v0,x,2);
T0 = E*I*diff(v0,x,3);
phi1 = -diff(v1,x);
M1 = E*I*diff(v1,x,2);
T1 = E*I*diff(v1,x,3);
phi2 = -diff(v2,x);
M2 = E*I*diff(v2,x,2);
T2 = E*I*diff(v2,x,3);
%———
ode_0 = diff(v0,x,4) == 0;
ode_1 = diff(v1,x,4) – 2*w*(lambda^2)*diff(v1,x,2) + (lambda^4)*v1 == 0;
ode_2 = diff(v2,x,4) + 2*ps*(k^2)*diff(v2,x,2) – k^4*(v2 – d_c/2) == 0;
%———
syms xL xR xI
xL = -a0 – Lcz;
xI = -Lcz;
xR = L – a0 – Lcz;
c1 = v0(xL) == d/2;
c2 = M0(xL) == 0;
c3 = v0(xI) == v2(xI);
c4 = phi0(xI) == phi2(xI);
c5 = M0(xI) == M2(xI);
c6 = T0(xI) == T2(xI);
c7 = v1(0) == v2(0);
c8 = phi1(0) == phi2(0);
c9 = M1(0) == M2(0);
c10 = T1(0) == T2(0);
c11 = v1(xR) == 0;
c12 = phi1(xR) == 0;
%———
odesys = [ode_0; ode_1; ode_2];
bc = [c1; c2; c3; c4; c5; c6; c7; c8; c9; c10; c11; c12];
v = dsolve(odesys, bc);
%———
v1_sol(x,d,Lcz) = simplify(v.v1);
v0_sol(x,d,Lcz) = simplify(v.v0);
v2_sol(x,d,Lcz) = simplify(v.v2);
phi0_sol(x,d,Lcz) = diff(v0_sol,x);
phi1_sol(x,d,Lcz) = diff(v1_sol,x);
phi2_sol(x,d,Lcz) = diff(v2_sol,x);
M0_sol(x,d,Lcz) = E*I*diff(v0_sol,x,2);
M1_sol(x,d,Lcz) = E*I*diff(v1_sol,x,2);
M2_sol(x,d,Lcz) = E*I*diff(v2_sol,x,2);
T0_sol(x,d,Lcz) = E*I*diff(v0_sol,x,3);
T1_sol(x,d,Lcz) = E*I*diff(v1_sol,x,3);
T2_sol(x,d,Lcz) = E*I*diff(v2_sol,x,3);
%———
d_lim = solve(v0_sol(0,d,0) == d_0/2,d);
% d_max = solve(v0_sol(0,d,0) == d_0/2,d);
% Lcz_max = solve(v2_sol(-Lcz,d_max,Lcz) – d_c/2 == 0, x,[0 50]);
[d_max, Lcz_max] = solve([v1_sol(0,d,Lcz) – d_0/2 == 0, v2_sol(-Lcz,d_max,Lcz) – d_c/2 == 0],[d,Lcz]); I have to solve the sistem of differential equation odesys with the condition imposed in bc vector. I obtain the "Invalid Initial Condition" at the line where v is defined, even if the domain for the boundary condition is correct. I must keep it a symbolic solution and a0 is a costant.
%% ANALYTICAL MODEL FOR A DCB SPECIMEN UNDER THE CONDITION OF PRESCRIBED DISPLACEMENTS
%% Linear Elastic Phase
%———
syms x d v0(x) v1(x) v2(x) Lcz
%———
phi0 = -diff(v0,x);
M0 = E*I*diff(v0,x,2);
T0 = E*I*diff(v0,x,3);
phi1 = -diff(v1,x);
M1 = E*I*diff(v1,x,2);
T1 = E*I*diff(v1,x,3);
phi2 = -diff(v2,x);
M2 = E*I*diff(v2,x,2);
T2 = E*I*diff(v2,x,3);
%———
ode_0 = diff(v0,x,4) == 0;
ode_1 = diff(v1,x,4) – 2*w*(lambda^2)*diff(v1,x,2) + (lambda^4)*v1 == 0;
ode_2 = diff(v2,x,4) + 2*ps*(k^2)*diff(v2,x,2) – k^4*(v2 – d_c/2) == 0;
%———
syms xL xR xI
xL = -a0 – Lcz;
xI = -Lcz;
xR = L – a0 – Lcz;
c1 = v0(xL) == d/2;
c2 = M0(xL) == 0;
c3 = v0(xI) == v2(xI);
c4 = phi0(xI) == phi2(xI);
c5 = M0(xI) == M2(xI);
c6 = T0(xI) == T2(xI);
c7 = v1(0) == v2(0);
c8 = phi1(0) == phi2(0);
c9 = M1(0) == M2(0);
c10 = T1(0) == T2(0);
c11 = v1(xR) == 0;
c12 = phi1(xR) == 0;
%———
odesys = [ode_0; ode_1; ode_2];
bc = [c1; c2; c3; c4; c5; c6; c7; c8; c9; c10; c11; c12];
v = dsolve(odesys, bc);
%———
v1_sol(x,d,Lcz) = simplify(v.v1);
v0_sol(x,d,Lcz) = simplify(v.v0);
v2_sol(x,d,Lcz) = simplify(v.v2);
phi0_sol(x,d,Lcz) = diff(v0_sol,x);
phi1_sol(x,d,Lcz) = diff(v1_sol,x);
phi2_sol(x,d,Lcz) = diff(v2_sol,x);
M0_sol(x,d,Lcz) = E*I*diff(v0_sol,x,2);
M1_sol(x,d,Lcz) = E*I*diff(v1_sol,x,2);
M2_sol(x,d,Lcz) = E*I*diff(v2_sol,x,2);
T0_sol(x,d,Lcz) = E*I*diff(v0_sol,x,3);
T1_sol(x,d,Lcz) = E*I*diff(v1_sol,x,3);
T2_sol(x,d,Lcz) = E*I*diff(v2_sol,x,3);
%———
d_lim = solve(v0_sol(0,d,0) == d_0/2,d);
% d_max = solve(v0_sol(0,d,0) == d_0/2,d);
% Lcz_max = solve(v2_sol(-Lcz,d_max,Lcz) – d_c/2 == 0, x,[0 50]);
[d_max, Lcz_max] = solve([v1_sol(0,d,Lcz) – d_0/2 == 0, v2_sol(-Lcz,d_max,Lcz) – d_c/2 == 0],[d,Lcz]); dsolve, ode, symbolic MATLAB Answers — New Questions
Error while creating Target starting from reference target ‘Aurix Tricore TC3x’
Hello,
I’m trying to use the Aurix Tricore TC3x Simulink Support Package to work with my TC36 board.
Since the available hardware options are only TC37, TC38, and TC39, I would like to create a new target for the TC36.
Rather than creating a new target from scratch and manually selecting all the features, I’m trying to inherit everything from the existing target and only modify the shared libraries (iLLD), the linker and the loader.
I’m using the following command:
tgt = createTarget(‘my TC36’, ‘Infineon AURIX TC3x’,’C:/TC36_TargetV1′, ‘initialize’)
But I get this error:
Error using matlabshared.targetsdk.Target/loadReferenceTargetObjects
Unable to load reference target ‘Infineon AURIX TC3x’.A table row name subscript must be a character vector, string array, or cell array of
character vectors
Error in matlabshared.targetsdk.Target
Error in createTarget (line 129)
targetObj = matlabshared.targetsdk.Target(name,refTarget,targetFolder,option);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Proceeding, I discovered that the error comes from:
matlabshared.targetsdk.loadTarget(‘Infineon AURIX TC3x’)
That gives the following:
>> matlabshared.targetsdk.loadTarget(‘Infineon AURIX TC3x’)
Error using {} (line 162)
A table row name subscript must be a character vector, string array, or cell array of character vectors
Error in matlabshared.targetsdk.Target/mapFeature
Error in matlabshared.targetsdk.Target/map
Error in matlabshared.targetsdk.Target/addNewBaremetalScheduler
Error in matlabshared.targetsdk.loadTarget
Error in matlabshared.targetsdk.loadTarget
Error in matlabshared.targetsdk.loadTarget
In particular in braceAssign.m on the line 162.
I also tried to use the loadTarget function with the ‘ARM Cortex-A’ target and it worked.
Therefore, The problem can be that I don’t know the exact target name of Infineon AURIX TC3x to use as the reference target, but I also tried to insert a wrong name argument to the loadTarget function and it gives a different result:
matlabshared.targetsdk.loadTarget(‘Infineon’)
Error using matlabshared.targetsdk.loadTarget
The target ‘Infineon’ is not registered. Make sure that the name of the target is correct and that its folders are on the MATLAB path. Also, make
sure to run ‘sl_refresh_customizations’ after you restart MATLAB.
Concluding, how can I use the Infineon AURIX TC3x as reference target?
Thank you!Hello,
I’m trying to use the Aurix Tricore TC3x Simulink Support Package to work with my TC36 board.
Since the available hardware options are only TC37, TC38, and TC39, I would like to create a new target for the TC36.
Rather than creating a new target from scratch and manually selecting all the features, I’m trying to inherit everything from the existing target and only modify the shared libraries (iLLD), the linker and the loader.
I’m using the following command:
tgt = createTarget(‘my TC36’, ‘Infineon AURIX TC3x’,’C:/TC36_TargetV1′, ‘initialize’)
But I get this error:
Error using matlabshared.targetsdk.Target/loadReferenceTargetObjects
Unable to load reference target ‘Infineon AURIX TC3x’.A table row name subscript must be a character vector, string array, or cell array of
character vectors
Error in matlabshared.targetsdk.Target
Error in createTarget (line 129)
targetObj = matlabshared.targetsdk.Target(name,refTarget,targetFolder,option);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Proceeding, I discovered that the error comes from:
matlabshared.targetsdk.loadTarget(‘Infineon AURIX TC3x’)
That gives the following:
>> matlabshared.targetsdk.loadTarget(‘Infineon AURIX TC3x’)
Error using {} (line 162)
A table row name subscript must be a character vector, string array, or cell array of character vectors
Error in matlabshared.targetsdk.Target/mapFeature
Error in matlabshared.targetsdk.Target/map
Error in matlabshared.targetsdk.Target/addNewBaremetalScheduler
Error in matlabshared.targetsdk.loadTarget
Error in matlabshared.targetsdk.loadTarget
Error in matlabshared.targetsdk.loadTarget
In particular in braceAssign.m on the line 162.
I also tried to use the loadTarget function with the ‘ARM Cortex-A’ target and it worked.
Therefore, The problem can be that I don’t know the exact target name of Infineon AURIX TC3x to use as the reference target, but I also tried to insert a wrong name argument to the loadTarget function and it gives a different result:
matlabshared.targetsdk.loadTarget(‘Infineon’)
Error using matlabshared.targetsdk.loadTarget
The target ‘Infineon’ is not registered. Make sure that the name of the target is correct and that its folders are on the MATLAB path. Also, make
sure to run ‘sl_refresh_customizations’ after you restart MATLAB.
Concluding, how can I use the Infineon AURIX TC3x as reference target?
Thank you! Hello,
I’m trying to use the Aurix Tricore TC3x Simulink Support Package to work with my TC36 board.
Since the available hardware options are only TC37, TC38, and TC39, I would like to create a new target for the TC36.
Rather than creating a new target from scratch and manually selecting all the features, I’m trying to inherit everything from the existing target and only modify the shared libraries (iLLD), the linker and the loader.
I’m using the following command:
tgt = createTarget(‘my TC36’, ‘Infineon AURIX TC3x’,’C:/TC36_TargetV1′, ‘initialize’)
But I get this error:
Error using matlabshared.targetsdk.Target/loadReferenceTargetObjects
Unable to load reference target ‘Infineon AURIX TC3x’.A table row name subscript must be a character vector, string array, or cell array of
character vectors
Error in matlabshared.targetsdk.Target
Error in createTarget (line 129)
targetObj = matlabshared.targetsdk.Target(name,refTarget,targetFolder,option);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Proceeding, I discovered that the error comes from:
matlabshared.targetsdk.loadTarget(‘Infineon AURIX TC3x’)
That gives the following:
>> matlabshared.targetsdk.loadTarget(‘Infineon AURIX TC3x’)
Error using {} (line 162)
A table row name subscript must be a character vector, string array, or cell array of character vectors
Error in matlabshared.targetsdk.Target/mapFeature
Error in matlabshared.targetsdk.Target/map
Error in matlabshared.targetsdk.Target/addNewBaremetalScheduler
Error in matlabshared.targetsdk.loadTarget
Error in matlabshared.targetsdk.loadTarget
Error in matlabshared.targetsdk.loadTarget
In particular in braceAssign.m on the line 162.
I also tried to use the loadTarget function with the ‘ARM Cortex-A’ target and it worked.
Therefore, The problem can be that I don’t know the exact target name of Infineon AURIX TC3x to use as the reference target, but I also tried to insert a wrong name argument to the loadTarget function and it gives a different result:
matlabshared.targetsdk.loadTarget(‘Infineon’)
Error using matlabshared.targetsdk.loadTarget
The target ‘Infineon’ is not registered. Make sure that the name of the target is correct and that its folders are on the MATLAB path. Also, make
sure to run ‘sl_refresh_customizations’ after you restart MATLAB.
Concluding, how can I use the Infineon AURIX TC3x as reference target?
Thank you! compiler sdk, embedded coder, infineon aurix tc3x support package, target sdk MATLAB Answers — New Questions
How to extract gray matter volumes based on a specific atlas using SPM and CAT12?
Hi everyone,
I’m new to MATLAB, SPM and CAT12, and I’m learning how to perform Voxel-Based Morphometry .
I’ve already preprocessed a T1-weighted MRI image using CAT12 and obtained TIV statis. Now I’d like to extract regional gray matter volume information from the mwp1.nii file, based on anatomical regions defined by an atlas (e.g., AAL atlas).
Could someone please guide me on how to do this?
Thanks in advance!Hi everyone,
I’m new to MATLAB, SPM and CAT12, and I’m learning how to perform Voxel-Based Morphometry .
I’ve already preprocessed a T1-weighted MRI image using CAT12 and obtained TIV statis. Now I’d like to extract regional gray matter volume information from the mwp1.nii file, based on anatomical regions defined by an atlas (e.g., AAL atlas).
Could someone please guide me on how to do this?
Thanks in advance! Hi everyone,
I’m new to MATLAB, SPM and CAT12, and I’m learning how to perform Voxel-Based Morphometry .
I’ve already preprocessed a T1-weighted MRI image using CAT12 and obtained TIV statis. Now I’d like to extract regional gray matter volume information from the mwp1.nii file, based on anatomical regions defined by an atlas (e.g., AAL atlas).
Could someone please guide me on how to do this?
Thanks in advance! image segmentation, cat12, spm, mri, gray matter MATLAB Answers — New Questions
Can someone help me name all this component Thak youu
name for each componentname for each component name for each component simulink, block diagram MATLAB Answers — New Questions
Clarification with IEC certified tools and the need for separate IEC certification kit
Hi,
As far as I read from the MATLAB website, the tools such as Matlab, Simulink, Embedded Coder,… are already ISO/IEC certified tools, but then, I am confused on the need for separate IEC certification kit available, to qualify those tools? Could you please clarify?
Thanks in advanceHi,
As far as I read from the MATLAB website, the tools such as Matlab, Simulink, Embedded Coder,… are already ISO/IEC certified tools, but then, I am confused on the need for separate IEC certification kit available, to qualify those tools? Could you please clarify?
Thanks in advance Hi,
As far as I read from the MATLAB website, the tools such as Matlab, Simulink, Embedded Coder,… are already ISO/IEC certified tools, but then, I am confused on the need for separate IEC certification kit available, to qualify those tools? Could you please clarify?
Thanks in advance iec61508, iso26262, toolbox, certification MATLAB Answers — New Questions
Ignoring Octave-specific code in Matlab 2024b
I have a following bit of code specific to Octave, in a project that is also meant to be run in Matlab:
if (isOctave())
% Set the tick label precision
set(gca, ‘xticklabel’, cellstr(num2str(get(gca, ‘xtick’) (:), "%.2f"))) %#ok<SBTMP,*ALL>
set(gca, ‘yticklabel’, cellstr(num2str(get(gca, ‘ytick’) (:), "%.2f"))) %#ok<SBTMP,*ALL>
% Set axis font size
set(gca, ‘fontsize’, 12)
end
That particular code is needed for Octave to display figures properly.
And isOctave.m is as follows:
function retval = isOctave
persistent cacheval; % speeds up repeated calls
if isempty (cacheval)
cacheval = (exist ("OCTAVE_VERSION", "builtin") > 0);
end
retval = cacheval;
end
isOctave() has been tested to properly return 0 (false) in Matlab and 1 (true) in Octave.
Now, in Matlab an error message is produced due to the indexing with a colon:
Error: File: foobar.m Line: 117 Column: 41
Invalid array indexing.
And since the code to be executed is guarded with isOctave(), which returns ‘false’, logically that code section should not even be executed in Matlab. So it’s weird that such error is being generated. And it even persist after adding the suppresstion %#ok<SBTMP,*ALL> in there.I have a following bit of code specific to Octave, in a project that is also meant to be run in Matlab:
if (isOctave())
% Set the tick label precision
set(gca, ‘xticklabel’, cellstr(num2str(get(gca, ‘xtick’) (:), "%.2f"))) %#ok<SBTMP,*ALL>
set(gca, ‘yticklabel’, cellstr(num2str(get(gca, ‘ytick’) (:), "%.2f"))) %#ok<SBTMP,*ALL>
% Set axis font size
set(gca, ‘fontsize’, 12)
end
That particular code is needed for Octave to display figures properly.
And isOctave.m is as follows:
function retval = isOctave
persistent cacheval; % speeds up repeated calls
if isempty (cacheval)
cacheval = (exist ("OCTAVE_VERSION", "builtin") > 0);
end
retval = cacheval;
end
isOctave() has been tested to properly return 0 (false) in Matlab and 1 (true) in Octave.
Now, in Matlab an error message is produced due to the indexing with a colon:
Error: File: foobar.m Line: 117 Column: 41
Invalid array indexing.
And since the code to be executed is guarded with isOctave(), which returns ‘false’, logically that code section should not even be executed in Matlab. So it’s weird that such error is being generated. And it even persist after adding the suppresstion %#ok<SBTMP,*ALL> in there. I have a following bit of code specific to Octave, in a project that is also meant to be run in Matlab:
if (isOctave())
% Set the tick label precision
set(gca, ‘xticklabel’, cellstr(num2str(get(gca, ‘xtick’) (:), "%.2f"))) %#ok<SBTMP,*ALL>
set(gca, ‘yticklabel’, cellstr(num2str(get(gca, ‘ytick’) (:), "%.2f"))) %#ok<SBTMP,*ALL>
% Set axis font size
set(gca, ‘fontsize’, 12)
end
That particular code is needed for Octave to display figures properly.
And isOctave.m is as follows:
function retval = isOctave
persistent cacheval; % speeds up repeated calls
if isempty (cacheval)
cacheval = (exist ("OCTAVE_VERSION", "builtin") > 0);
end
retval = cacheval;
end
isOctave() has been tested to properly return 0 (false) in Matlab and 1 (true) in Octave.
Now, in Matlab an error message is produced due to the indexing with a colon:
Error: File: foobar.m Line: 117 Column: 41
Invalid array indexing.
And since the code to be executed is guarded with isOctave(), which returns ‘false’, logically that code section should not even be executed in Matlab. So it’s weird that such error is being generated. And it even persist after adding the suppresstion %#ok<SBTMP,*ALL> in there. matlab, octave, code, portable MATLAB Answers — New Questions