Category: News
People Settings Appear in the Microsoft 365 Admin Center
Customize the Microsoft 365 Profile Card Through the Admin Center
A July 3 LinkedIn post by Microsoft’s Wictor Wilén revealed that the Settings section of the Microsoft 365 admin center now has a People Settings section where tenant administrators and people administrators can customize the properties that appear on the Microsoft 365 people card. Figure 1 shows the properties available for inclusion in the profile card.

No Custom Properties
The thing about the set of properties shown by the Microsoft 365 admin center is that they don’t include any custom properties (the Exchange custom properties referred to by Entra ID as the on-premises extension properties) added to the profile card through the Microsoft Graph. To keep focus, properties ingested from another source, like Copilot connectors for people data, are out of scope for this discussion.
For example, the profile card for my tenant features three custom properties for Employee Id, Employee Type, and Cost Center (see this article about how to customize the Microsoft 365 user profile card with PowerShell). Similar properties are in the list shown in Figure 1, but these are Entra ID properties rather than the custom properties I used.
Two of the properties (EmployeeId and EmployeeType) have been available in Entra ID for several years, but never featured in the set surfaced in the profile card (which is why I used custom attributes)
The CostCenter property is part of the CompanyDetail Graph resource type that’s currently in beta. Looking at the other optional properties listed in Figure 1, we find that the Division property is also part of the CompanyDetail resource, while the Role property is part of the PositionDetail resource, another beta resource.
Because these properties are in beta, you cannot update them for user accounts through the Entra admin center or Microsoft 365 admin center. Instead, you’ll need to use cmdlets like New-MgBetaUserProfilePosition (which updates the Role property), or the Update-MgUser cmdlet to update the CostCenter and Division properties. As shown below, after updating the properties for a user account, the Get-MgUser cmdlet can retrieve the updated values:
$Parameters = @{ employeeOrgData = @{ "costCenter" = "881-22993" "division" = "CEO Office" } } Update-MgUser -UserId Tony.Redmond@office365itpros.com -BodyParameter $Parameters Get-MgUser -Userid Tony.Redmond@office365itpros.com -Property id, displayName, userPrincipalName, employeeOrgData | Select-Object -ExpandProperty employeeOrgData CostCenter Division ---------- -------- 881-22993 CEO Office
Microsoft 365 Profile Card In a State of Transition
The Microsoft 365 profile card is in a state of transition. Some properties come from Entra ID, and some come from SharePoint Online, which can end up in a messy profile card with apparent duplications. Add in some custom properties derived from Exchange custom attributes, and it’s a recipe for confusion.
The good news is that Microsoft is attempting to solve the problem by defining the properties required by Microsoft 365 tenants in Graph resources. If Graph resources include rich descriptions of about people and their roles, then there’ll be no need to use custom properties.
Tenants use custom properties today because it has been the only way to present customized information about people on the profile card. A migration to move values from custom to standard properties will have to occur in the future. For example, my tenant needs to extract values from the custom properties used by the profile card today and transfer the values to the default Graph properties. The transition will be completed by updating the set of properties shown on the user profile card to use the default rather than custom properties. You can download a script from the Office365itpros GitHub repository that demonstrates the general principle.
More Settings for the Microsoft 365 Profile Card to Come
The big expansion of the People Settings section in the Microsoft 365 admin center needs to be filled with more than the single option to customize the people card. I expect that Microsoft will use the page to present all the settings that affect the profile card, including the display of personal pronouns and name pronunciation recordings. It just takes time to roll these changes out, but I wouldn’t be surprised to see the other settings appear in the Microsoft 365 admin center before the end of the year.
Insight like this doesn’t come easily. You’ve got to know the technology and understand how to look behind the scenes. Benefit from the knowledge and experience of the Office 365 for IT Pros team by subscribing to the best eBook covering Office 365 and the wider Microsoft 365 ecosystem.
Security error using fred/fetch
Hi,
I recently updated the Mac software to Sequoia, and started to receive the following error for a code that has always worked before:
Error using fred/fetch
Unable to retrieve data. Verify valid security request.
Do you know how to fix this? I have updated the Matlab version to the latest, and the error still persists.
Thanks!Hi,
I recently updated the Mac software to Sequoia, and started to receive the following error for a code that has always worked before:
Error using fred/fetch
Unable to retrieve data. Verify valid security request.
Do you know how to fix this? I have updated the Matlab version to the latest, and the error still persists.
Thanks! Hi,
I recently updated the Mac software to Sequoia, and started to receive the following error for a code that has always worked before:
Error using fred/fetch
Unable to retrieve data. Verify valid security request.
Do you know how to fix this? I have updated the Matlab version to the latest, and the error still persists.
Thanks! fred, fetch MATLAB Answers — New Questions
Documentation on creating a box label datastore for bounding box label data with Sublabels?
Hello, I’m having trouble figuring how to train a fasterRCNN network using a labeled dataset I hand-labeled in Matlab with sublabels. I know how to create a boxLabelDatastore for just labeling 1 object but I can’t figure out how to do this when I have sublabels. The error I get when I try to apply my old code for one object with no sublabels is as follows…
"Error using boxLabelDatastore
Invalid data in column 1 of input table 1.
Caused by:
Error using boxLabelDatastore>iAssertValidBBoxFormat
The size of bounding box data must be M-by-4, M-by-5, or M-by-9, where M is the number of boxes in each table element. The column in the training data table that contains thebounding boxes must be a cell array."
also this function does not work either…
[imds,blds] = objectDetectorTrainingData(gTruth)
Warning: groundTruth object/s contain attribute or sublabel data. These are not included in the output table.
> In objectDetectorTrainingData>populateTrainingTable (line 330)
In objectDetectorTrainingData (line 165)
I also have not been able to find any examples of going from a gTruth datastore to actually training a network in the examplesHello, I’m having trouble figuring how to train a fasterRCNN network using a labeled dataset I hand-labeled in Matlab with sublabels. I know how to create a boxLabelDatastore for just labeling 1 object but I can’t figure out how to do this when I have sublabels. The error I get when I try to apply my old code for one object with no sublabels is as follows…
"Error using boxLabelDatastore
Invalid data in column 1 of input table 1.
Caused by:
Error using boxLabelDatastore>iAssertValidBBoxFormat
The size of bounding box data must be M-by-4, M-by-5, or M-by-9, where M is the number of boxes in each table element. The column in the training data table that contains thebounding boxes must be a cell array."
also this function does not work either…
[imds,blds] = objectDetectorTrainingData(gTruth)
Warning: groundTruth object/s contain attribute or sublabel data. These are not included in the output table.
> In objectDetectorTrainingData>populateTrainingTable (line 330)
In objectDetectorTrainingData (line 165)
I also have not been able to find any examples of going from a gTruth datastore to actually training a network in the examples Hello, I’m having trouble figuring how to train a fasterRCNN network using a labeled dataset I hand-labeled in Matlab with sublabels. I know how to create a boxLabelDatastore for just labeling 1 object but I can’t figure out how to do this when I have sublabels. The error I get when I try to apply my old code for one object with no sublabels is as follows…
"Error using boxLabelDatastore
Invalid data in column 1 of input table 1.
Caused by:
Error using boxLabelDatastore>iAssertValidBBoxFormat
The size of bounding box data must be M-by-4, M-by-5, or M-by-9, where M is the number of boxes in each table element. The column in the training data table that contains thebounding boxes must be a cell array."
also this function does not work either…
[imds,blds] = objectDetectorTrainingData(gTruth)
Warning: groundTruth object/s contain attribute or sublabel data. These are not included in the output table.
> In objectDetectorTrainingData>populateTrainingTable (line 330)
In objectDetectorTrainingData (line 165)
I also have not been able to find any examples of going from a gTruth datastore to actually training a network in the examples sublabels, fasterrcnn, object detection, deep learning MATLAB Answers — New Questions
Do you have a HECVAT & VPAT for the MATLAB software?
Do you have a HECVAT & VPAT for the MATLAB software?Do you have a HECVAT & VPAT for the MATLAB software? Do you have a HECVAT & VPAT for the MATLAB software? hecvat, vpat MATLAB Answers — New Questions
Neural network classification improvments
hi all,
I have trained a neural network using fitcnet, the data is a simple classification of hole numbering. the data is as per the simplified attached picture. but essentially the center of the hole xy point, the angle and distance relative to the center of the whole blade, the whole blade major axis and finally the hole number a value from 1:319.
the problem i have found is two-fold.
i think it may be ‘over-fitted’ it works well on the synthetic data but performs worse on real data
2. it rountinly will identify multilple holes as the same number e.g there would be 4 hole number 3’s now in the real data sometimes a single hole can split into a pair of much smaller holes they stay rougly within bounds of the original hole.
The data into the training was a single row of info for one hole listing the above info including its class effectivly treating each time i then ask it to predict the classification of a new hole being a ‘clean-sheet’ with no knowledge of already predicted holes.
Does anyone have any suggestions for possible improvments?
many thanks timhi all,
I have trained a neural network using fitcnet, the data is a simple classification of hole numbering. the data is as per the simplified attached picture. but essentially the center of the hole xy point, the angle and distance relative to the center of the whole blade, the whole blade major axis and finally the hole number a value from 1:319.
the problem i have found is two-fold.
i think it may be ‘over-fitted’ it works well on the synthetic data but performs worse on real data
2. it rountinly will identify multilple holes as the same number e.g there would be 4 hole number 3’s now in the real data sometimes a single hole can split into a pair of much smaller holes they stay rougly within bounds of the original hole.
The data into the training was a single row of info for one hole listing the above info including its class effectivly treating each time i then ask it to predict the classification of a new hole being a ‘clean-sheet’ with no knowledge of already predicted holes.
Does anyone have any suggestions for possible improvments?
many thanks tim hi all,
I have trained a neural network using fitcnet, the data is a simple classification of hole numbering. the data is as per the simplified attached picture. but essentially the center of the hole xy point, the angle and distance relative to the center of the whole blade, the whole blade major axis and finally the hole number a value from 1:319.
the problem i have found is two-fold.
i think it may be ‘over-fitted’ it works well on the synthetic data but performs worse on real data
2. it rountinly will identify multilple holes as the same number e.g there would be 4 hole number 3’s now in the real data sometimes a single hole can split into a pair of much smaller holes they stay rougly within bounds of the original hole.
The data into the training was a single row of info for one hole listing the above info including its class effectivly treating each time i then ask it to predict the classification of a new hole being a ‘clean-sheet’ with no knowledge of already predicted holes.
Does anyone have any suggestions for possible improvments?
many thanks tim fitcnet, neural network MATLAB Answers — New Questions
Sort Internal Variables in FMU
Hi,
I am exporting a Simulink model with some pre-defined internal variables as a FMU. There are properly exported. However, the order is not respected; they seem to be randomly sorted inside the FMU object.
Is there any way I could solve this issue?
Thank you very much in advance.
Best regards,
Víctor Sánchez SuárezHi,
I am exporting a Simulink model with some pre-defined internal variables as a FMU. There are properly exported. However, the order is not respected; they seem to be randomly sorted inside the FMU object.
Is there any way I could solve this issue?
Thank you very much in advance.
Best regards,
Víctor Sánchez Suárez Hi,
I am exporting a Simulink model with some pre-defined internal variables as a FMU. There are properly exported. However, the order is not respected; they seem to be randomly sorted inside the FMU object.
Is there any way I could solve this issue?
Thank you very much in advance.
Best regards,
Víctor Sánchez Suárez fmu, simulink, internal variables, export MATLAB Answers — New Questions
Microsoft Explains the Differences Between Copilot Memories
Copilot Memory and Copilot Communication Memory or Live Memory
On August 6, I reported about Copilot Memory, a way for users to personalize how Microsoft 365 Copilot responds to prompts. The article mentions message center notification MC1127234 (1 August 2025). In the text I noted some conflicts between the reported dates in the Technical community post about Copilot Memory and MC1127234.
As it turns out, some confusion existed about what Microsoft described in the message center notification because it doesn’t refer to the Copilot Memory feature. Instead, MC1127234 discusses Copilot “communication memory,” or information derived from a user’s personal communication used by Microsoft 365 Copilot to deliver better results to user prompts.
On August 29, 2025, Microsoft reissued MC1127234 (Microsoft 365 roadmap item 499153) to clarify what they meant, saying that the restatement was due to customer feedback, and because the change requires new processing of user data.
Learning to be More Context-Aware from User Communications
The updated text describes an “extended capability” for how Microsoft 365 Copilot gleans information about what’s important to a user from their chats, emails, and meetings. In other words, Copilot learns about what people do from the information contained in the Microsoft Graph and uses that information (referred to as “memories”) to deliver more personalized and “context-aware” responses to user prompts. “Live memories” (the same as communication memory) for individual users are formed by using AI to analyze and summarize the information held in items accessible to individual user, like transcripts from meetings they attend.
Easy as it is to become confused with so many references to different types of memory, the serious point is that communication memory is “a unified view across communication channels.” In other words, where Copilot integration in Microsoft 365 apps used to focus exclusively on information from a specific app, now Copilot draws in information from multiple sources to create a more rounded picture. For instance, the Facilitator agent in Teams operates on messages posted to a chat. With communication memory, the agent can refer to other sources available through the Graph (like previous emails between the chat participants) to deliver better advice.
People-Related Questions First
Microsoft says that Copilot communication memories will initially be used to improve the quality of Copilot responses to people-related questions. I guess this means that if you include someone’s name in a Copilot prompt, it will automatically query the Graph to find out if any information associated with that name is available to help frame its response. The new mode of processing started on September 1, 2025. However, complete worldwide deployment is not expected to be complete until late October 2025.
Making Microsoft 365 Copilot A Bit Smarter
Anything that helps AI to do a better job is welcome. In this case, it seems like Microsoft is expanding the horizon of what Copilot looks for when it assembles information to answer a question from the limit of a single app to a more-encompassing view of what’s available to a user in the Graph. That’s a good idea.

Of course, the normal caveats over anything to do with AI applies. Copilot communication memory depends on what Copilot can find, and if the information in the Graph is inaccurate, obsolete, or just plain wrong, then the advice informed by memory could be affected. Microsoft notes that citations (source links) are provided for each source mentioned in a response (Figure 1). Quite how often people check out every citation for a Copilot response is quite another matter. Sometimes, any answer will do.
Learn more about how the Microsoft 365 applications really work on an ongoing basis by subscribing to the Office 365 for IT Pros eBook. Our monthly updates keep subscribers informed about what’s important across the Office 365 ecosystem.
How do I migrate my command history data from older releases to MATLAB R2025a?
How do I migrate my command history data from older releases to MATLAB R2025a?How do I migrate my command history data from older releases to MATLAB R2025a? How do I migrate my command history data from older releases to MATLAB R2025a? command_history, command_history_migration, new_desktop MATLAB Answers — New Questions
How to write single Script for all profiles ?
The input in my case is the measurement data from a sensor doing spiral scanning. So I have 3D point data (x, y, z) of the surface for different geometries like hemisphere, plane, sphere, and cylinder. The script should preprocess this data (filtering, centering, vertex search), fit the right model (sphere, plane, cylinder, or freeform), and then output the fitted parameters along with residuals. The outcomes I want are both numerical results (fit parameters and errors) and visualizations in 2D cross-sections and 3D surface plots.The input in my case is the measurement data from a sensor doing spiral scanning. So I have 3D point data (x, y, z) of the surface for different geometries like hemisphere, plane, sphere, and cylinder. The script should preprocess this data (filtering, centering, vertex search), fit the right model (sphere, plane, cylinder, or freeform), and then output the fitted parameters along with residuals. The outcomes I want are both numerical results (fit parameters and errors) and visualizations in 2D cross-sections and 3D surface plots. The input in my case is the measurement data from a sensor doing spiral scanning. So I have 3D point data (x, y, z) of the surface for different geometries like hemisphere, plane, sphere, and cylinder. The script should preprocess this data (filtering, centering, vertex search), fit the right model (sphere, plane, cylinder, or freeform), and then output the fitted parameters along with residuals. The outcomes I want are both numerical results (fit parameters and errors) and visualizations in 2D cross-sections and 3D surface plots. measurement, sensor, spiral, scan, preprocess, fit, residuals, 2d, 3d, surface MATLAB Answers — New Questions
Accelerating AI adoption for the US government
Today, Microsoft and the US General Services Administration (GSA) announced a comprehensive agreement to bring a suite of productivity, cloud and AI services, including Microsoft 365 Copilot at no cost for up to 12 months for millions of existing Microsoft G5 users, to help agencies rapidly adopt secure and compliant advanced AI tools that will enhance operations, strengthen security and accelerate innovation for the American people. As an unparalleled milestone in advancing GSA’s OneGov strategy, Microsoft’s offerings will be available through a governmentwide unified pricing strategy that is expected to drive $3 billion in cost savings in the first year alone.
Enabling AI innovation and acceleration for federal agencies
This expansive offering will help agencies achieve key pillars of the America’s AI Action Plan by enabling federal agencies to serve at the forefront on driving AI innovation and adoption in service to the American people. Through this agreement federal agencies will access the latest AI capabilities at scale, now integrated in many of the products they already use, to achieve key administration priorities:
- Transforming productivity with AI: A unique Microsoft 365 and Copilot suite, offered exclusively to the federal government, enables agencies to automate workflows, analyze data and collaborate more efficiently, freeing public servants to focus on their core mission.
- Driving automation with AI agents: With AI agents, and no per-agent fees, agencies can build solutions for citizen inquiries, case management and contact centers, extending the reach and responsiveness of government services.
- Accelerating cloud modernization: With significant Azure discounts and the waiving of data egress fees, agencies can modernize infrastructure, reduce barriers to interagency collaboration and unlock the full power of advanced analytics and AI.
- Streamlining government operations: Dynamics 365 applications help agencies enhance citizen service, optimize supply chains and increase field responsiveness, directly impacting everyday public outcomes.
- Strengthening security across all levels: Integrated platforms such as Microsoft Entra ID and Sentinel provide advanced identity and threat protection, supporting the Zero Trust journey across federal environments.
Federal agencies can opt-in to any or all of these offers through September 2026, with discounted pricing available for up to 36 months.
Innovation meets security
Agencies can quickly adopt these solutions knowing these services have already achieved key FedRAMP security and compliance authorizations, meeting more than 400 critical security controls established in NIST 800-53 standards. Microsoft 365, Azure and our key AI services are authorized at FedRAMP High. Microsoft 365 Copilot received provisional authorization from the US Department of Defense, with FedRAMP High expected soon.
Investing for the future
Our commitment goes beyond technology and savings. Microsoft is also committing $20 million in additional support services to help agencies implement the offers and maximize the value of these services, along with complimentary cost-optimization workshops that will enable agencies to identify opportunities to reduce software duplication, automate services and improve cross-team interoperability. These investments reflect our belief that technology’s greatest value lies in its ability to empower people.
Taken together, we anticipate these services have the potential to deliver more than $6 billion in total estimated value over three years.
For more than four decades, Microsoft has been privileged to support the US government’s most vital missions. Today, as we stand at the forefront of the AI era, we reaffirm our dedication to serving as a trusted partner — one that listens, innovates responsibly and shares in the mission to advance the nation’s public good. We look forward to the next chapter helping agencies harness secure AI and cloud solutions to build a stronger, more resilient and more innovative future for all.
To learn how to take advantage of these offers, contact your Microsoft representative or authorized reseller*. For any additional questions, you can email our Microsoft OneGov team.
*Microsoft OneGov offers are applicable to Microsoft federal customers with Enterprise Agreements and exclude AOS-G and CSP programs; Azure Consumption Discounts and waived egress fees applicable to select Governmentwide Acquisition Contracts.
The post Accelerating AI adoption for the US government appeared first on The Official Microsoft Blog.
Today, Microsoft and the US General Services Administration (GSA) announced a comprehensive agreement to bring a suite of productivity, cloud and AI services, including Microsoft 365 Copilot at no cost for up to 12 months for millions of existing Microsoft G5 users, to help agencies rapidly adopt secure and compliant advanced AI tools that will enhance…
The post Accelerating AI adoption for the US government appeared first on The Official Microsoft Blog.Read More
How can I cross-compile a standalone FMU that I exported from Simulink with Simulink Compiler?
I would like to reuse a standalone FMU generated with Simulink Compiler on another platform. For example, adding Linux binaries when a Simulink model is exported to FMU on Windows platform.I would like to reuse a standalone FMU generated with Simulink Compiler on another platform. For example, adding Linux binaries when a Simulink model is exported to FMU on Windows platform. I would like to reuse a standalone FMU generated with Simulink Compiler on another platform. For example, adding Linux binaries when a Simulink model is exported to FMU on Windows platform. savesourcecodetofmu, cross-compile, codegen MATLAB Answers — New Questions
How can I protect my system from unsafe Model/Block Callbacks
I experiment on thousands of external Simulink models for my research projects. When dealing with them, e.g., performing load_system(<model>) , how can I protect my system from malicious callbacks? Of course I can do a set_param(<model>/<blocks>, <CallBackFcn>, ”) for the model and every block, but only after loading it, though? This means all "LoadFcn" will be executed, up and including a potential rm -rf ~/* or whatever creative malicious code might be hidden somewhere in the model. On open_model(<model>) the "OpenFcn" will be executed similarly.
Is there a sandbox functionality to deal with this attack vector?I experiment on thousands of external Simulink models for my research projects. When dealing with them, e.g., performing load_system(<model>) , how can I protect my system from malicious callbacks? Of course I can do a set_param(<model>/<blocks>, <CallBackFcn>, ”) for the model and every block, but only after loading it, though? This means all "LoadFcn" will be executed, up and including a potential rm -rf ~/* or whatever creative malicious code might be hidden somewhere in the model. On open_model(<model>) the "OpenFcn" will be executed similarly.
Is there a sandbox functionality to deal with this attack vector? I experiment on thousands of external Simulink models for my research projects. When dealing with them, e.g., performing load_system(<model>) , how can I protect my system from malicious callbacks? Of course I can do a set_param(<model>/<blocks>, <CallBackFcn>, ”) for the model and every block, but only after loading it, though? This means all "LoadFcn" will be executed, up and including a potential rm -rf ~/* or whatever creative malicious code might be hidden somewhere in the model. On open_model(<model>) the "OpenFcn" will be executed similarly.
Is there a sandbox functionality to deal with this attack vector? callback, sandbox, trust, safeness MATLAB Answers — New Questions
Unable to read .bin data from Jetson
I am try to run a matched Filter function on jetson, using the ‘exe’ library, but there is no data inside the .bin file that i have generated.
here is the matched filter fucntion
function mf_output = matched_Filter_GPU(rx_signal_noisy, matched_filter, NsampPRI,Npulses) %#codegen
coder.gpu.kernelfun;
rx_signal_noisy1 = (rx_signal_noisy); (rx_signal (1×100000 complex double )
matched_filter1 = (matched_filter); (matched_filter 1×100 complex double)
RX_matrix = reshape(rx_signal_noisy1, NsampPRI, Npulses);
mf_output = conv2(RX_matrix, matched_filter1, ‘same’);
end
here is the wrapper function
function matched_Filter_wrapper(rx_signal_noisy, matched_filter, NsampPRI, Npulses) %#codegen
coder.gpu.kernelfun;
coder.extrinsic(‘fopen’,’fwrite’,’fclose’);
mf_output = matched_Filter_GPU(rx_signal_noisy, matched_filter, NsampPRI, Npulses);
fid = fopen(‘output_new.bin’, ‘w’);
fwrite(fid, [1000 100], ‘int32’);
fwrite(fid, [real(mf_output)], ‘single’)
fclose(fid);
end
here is the MATLAB code
clear
S = load(‘rx_signal_noisy.mat’);
rx_signal_noisy = single(struct2array(S));
S = load(‘MF_coeff.mat’);
MF_coeff = single(struct2array(S));
NsampPRI = int32(1000);
Npulses = int32(100);
hwObj = jetson(‘169.254.172.219′,’hr’,’0000′);
rx_signal_noisy_T = coder.typeof(complex(single(0)), [1 100000], [0 0]);
matched_filter_T = coder.typeof(complex(single(0)), [1 100], [0 0]);
NsampPRI_T = coder.typeof(int32(0), [1 1], [0 0]);
Npulses_T = coder.typeof(int32(0), [1 1], [0 0]);
outfile_T = coder.typeof(‘a’, [1 200], [0 1]);
cfg = coder.gpuConfig(‘exe’);
cfg.Hardware = coder.Hardware(‘NVIDIA Jetson’);
cfg.GenerateReport = false;
cfg.VerificationMode = ‘None’;
cfg.CodeExecutionProfiling = false;
cfg.GenerateExampleMain = ‘GenerateCodeAndCompile’;
cfg.Hardware.BuildDir = ‘~/remoteBuildDir’;
codegen -config cfg matched_Filter_wrapper -args {rx_signal_noisy_T, matched_filter_T, NsampPRI_T, Npulses_T}
system(hwObj, ‘./matched_Filter_wrapper.elf’);
getFile(hwObj, ‘~/remoteBuildDir/MATLAB_ws/R2024a/D/Drive_Data/Radar/Radar/output_new.bin’)
fid = fopen(‘output_new.bin’,’r’);
size1 = fread(fid,2, ‘int32’);
output = fread(fid, prod(NsampPRI), ‘single’);
kindly guide me throigh the process, it will be a great help. thankyou in advanceI am try to run a matched Filter function on jetson, using the ‘exe’ library, but there is no data inside the .bin file that i have generated.
here is the matched filter fucntion
function mf_output = matched_Filter_GPU(rx_signal_noisy, matched_filter, NsampPRI,Npulses) %#codegen
coder.gpu.kernelfun;
rx_signal_noisy1 = (rx_signal_noisy); (rx_signal (1×100000 complex double )
matched_filter1 = (matched_filter); (matched_filter 1×100 complex double)
RX_matrix = reshape(rx_signal_noisy1, NsampPRI, Npulses);
mf_output = conv2(RX_matrix, matched_filter1, ‘same’);
end
here is the wrapper function
function matched_Filter_wrapper(rx_signal_noisy, matched_filter, NsampPRI, Npulses) %#codegen
coder.gpu.kernelfun;
coder.extrinsic(‘fopen’,’fwrite’,’fclose’);
mf_output = matched_Filter_GPU(rx_signal_noisy, matched_filter, NsampPRI, Npulses);
fid = fopen(‘output_new.bin’, ‘w’);
fwrite(fid, [1000 100], ‘int32’);
fwrite(fid, [real(mf_output)], ‘single’)
fclose(fid);
end
here is the MATLAB code
clear
S = load(‘rx_signal_noisy.mat’);
rx_signal_noisy = single(struct2array(S));
S = load(‘MF_coeff.mat’);
MF_coeff = single(struct2array(S));
NsampPRI = int32(1000);
Npulses = int32(100);
hwObj = jetson(‘169.254.172.219′,’hr’,’0000′);
rx_signal_noisy_T = coder.typeof(complex(single(0)), [1 100000], [0 0]);
matched_filter_T = coder.typeof(complex(single(0)), [1 100], [0 0]);
NsampPRI_T = coder.typeof(int32(0), [1 1], [0 0]);
Npulses_T = coder.typeof(int32(0), [1 1], [0 0]);
outfile_T = coder.typeof(‘a’, [1 200], [0 1]);
cfg = coder.gpuConfig(‘exe’);
cfg.Hardware = coder.Hardware(‘NVIDIA Jetson’);
cfg.GenerateReport = false;
cfg.VerificationMode = ‘None’;
cfg.CodeExecutionProfiling = false;
cfg.GenerateExampleMain = ‘GenerateCodeAndCompile’;
cfg.Hardware.BuildDir = ‘~/remoteBuildDir’;
codegen -config cfg matched_Filter_wrapper -args {rx_signal_noisy_T, matched_filter_T, NsampPRI_T, Npulses_T}
system(hwObj, ‘./matched_Filter_wrapper.elf’);
getFile(hwObj, ‘~/remoteBuildDir/MATLAB_ws/R2024a/D/Drive_Data/Radar/Radar/output_new.bin’)
fid = fopen(‘output_new.bin’,’r’);
size1 = fread(fid,2, ‘int32’);
output = fread(fid, prod(NsampPRI), ‘single’);
kindly guide me throigh the process, it will be a great help. thankyou in advance I am try to run a matched Filter function on jetson, using the ‘exe’ library, but there is no data inside the .bin file that i have generated.
here is the matched filter fucntion
function mf_output = matched_Filter_GPU(rx_signal_noisy, matched_filter, NsampPRI,Npulses) %#codegen
coder.gpu.kernelfun;
rx_signal_noisy1 = (rx_signal_noisy); (rx_signal (1×100000 complex double )
matched_filter1 = (matched_filter); (matched_filter 1×100 complex double)
RX_matrix = reshape(rx_signal_noisy1, NsampPRI, Npulses);
mf_output = conv2(RX_matrix, matched_filter1, ‘same’);
end
here is the wrapper function
function matched_Filter_wrapper(rx_signal_noisy, matched_filter, NsampPRI, Npulses) %#codegen
coder.gpu.kernelfun;
coder.extrinsic(‘fopen’,’fwrite’,’fclose’);
mf_output = matched_Filter_GPU(rx_signal_noisy, matched_filter, NsampPRI, Npulses);
fid = fopen(‘output_new.bin’, ‘w’);
fwrite(fid, [1000 100], ‘int32’);
fwrite(fid, [real(mf_output)], ‘single’)
fclose(fid);
end
here is the MATLAB code
clear
S = load(‘rx_signal_noisy.mat’);
rx_signal_noisy = single(struct2array(S));
S = load(‘MF_coeff.mat’);
MF_coeff = single(struct2array(S));
NsampPRI = int32(1000);
Npulses = int32(100);
hwObj = jetson(‘169.254.172.219′,’hr’,’0000′);
rx_signal_noisy_T = coder.typeof(complex(single(0)), [1 100000], [0 0]);
matched_filter_T = coder.typeof(complex(single(0)), [1 100], [0 0]);
NsampPRI_T = coder.typeof(int32(0), [1 1], [0 0]);
Npulses_T = coder.typeof(int32(0), [1 1], [0 0]);
outfile_T = coder.typeof(‘a’, [1 200], [0 1]);
cfg = coder.gpuConfig(‘exe’);
cfg.Hardware = coder.Hardware(‘NVIDIA Jetson’);
cfg.GenerateReport = false;
cfg.VerificationMode = ‘None’;
cfg.CodeExecutionProfiling = false;
cfg.GenerateExampleMain = ‘GenerateCodeAndCompile’;
cfg.Hardware.BuildDir = ‘~/remoteBuildDir’;
codegen -config cfg matched_Filter_wrapper -args {rx_signal_noisy_T, matched_filter_T, NsampPRI_T, Npulses_T}
system(hwObj, ‘./matched_Filter_wrapper.elf’);
getFile(hwObj, ‘~/remoteBuildDir/MATLAB_ws/R2024a/D/Drive_Data/Radar/Radar/output_new.bin’)
fid = fopen(‘output_new.bin’,’r’);
size1 = fread(fid,2, ‘int32’);
output = fread(fid, prod(NsampPRI), ‘single’);
kindly guide me throigh the process, it will be a great help. thankyou in advance nvidia jetson, binary, exe MATLAB Answers — New Questions
Issues in the Structural Design of Injectors
Hi friends!If I know the inlet flow and pressure of the jet pump, as well as the suction port flow and pressure, can I use MATLAB’s jet pump function to obtain the detailed structural dimensions of the jet pump?Hi friends!If I know the inlet flow and pressure of the jet pump, as well as the suction port flow and pressure, can I use MATLAB’s jet pump function to obtain the detailed structural dimensions of the jet pump? Hi friends!If I know the inlet flow and pressure of the jet pump, as well as the suction port flow and pressure, can I use MATLAB’s jet pump function to obtain the detailed structural dimensions of the jet pump? jet pump MATLAB Answers — New Questions
Microsoft Deprecates Graph CLI and Toolkit
Rationalization of Microsoft Graph Developer Tools

On August 29, 2025, Microsoft announced the deprecation of the Microsoft Graph command line interface (CLI) and the Microsoft Graph Toolkit. Full retirement of these components is planned for August 28, 2026. It seems like both decisions are part of an effort to rationalize the portfolio of Microsoft Graph developer tools.
Microsoft suggests that the replacement for the Microsoft Graph CLI is the Microsoft Graph PowerShell SDK. This makes sense to me. Although the Graph PowerShell SDK has its foibles and has experienced some terrible quality problems over recent releases, a new development group recently took over responsibility for the SDK. Hopefully, they will be able to restore the necessary quality and robustness. The most recent release (V2.30) appears to be reasonably stable, including when used with PowerShell V7.4 in a custom Azure Automation runtime environment.
Software Development Bets Often Fail
Development of software tools is a matter of luck. Some take and are wildly successful. Others fail, perhaps slowly, but eventually as interest peters out or users take their interest elsewhere. Microsoft cannot be criticized for implementing different ways to exploit the Graph, but it can be criticized for not seeking consistency and coverage across the Microsoft 365 ecosystem. I’m not unhappy about the deprecation of the Graph CLI or Graph Toolkit. However, it would be nice to see the effort previously expended on these tools devoted to addressing the issues raised in a recent feedback portal request.
The Complaint Against Microsoft
The feedback portal request is simple: inconsistency is rife across Microsoft 365 administrative interfaces. Fourteen years after the launch of Office 365, it’s inconceivable that so many gaps exist in the API coverage for workloads. Microsoft positions the Graph as the great unifying force, but the facts on the ground are that many operations implemented in administrative portals like the Microsoft 365 admin center or the Entra admin center are accomplished using undocumented private APIs.
Tools like the Graph X-Ray and network traces throw some light onto what happens when administrators take actions in portals, but unless an API is documented, developers outside Microsoft take a risk if they attempt to use knowledge gleaned through unofficial sources to automate processes, or even worse, build products to close gaps left by Microsoft in their API coverage.
The complaint is endorsed by many Microsoft MVPs. Its requests are straightforward:
- Surface all administrative portal functionality through the Microsoft Graph. Although I appreciate that it takes time to achieve full production status. It is reasonable to ask for access through a beta endpoint to start.
- Support application permissions for access to data. This request makes eminent sense. There is no good reason for demanding that access tokens have the global administrator role to change a setting.
- Publish a roadmap and timeline when gaps in administrative coverage will be closed. Again, this is reasonable.
- Move endpoints out of beta status in a reasonable timeframe. Many organizations do not trust beta anything. It would be good if Microsoft committed to moving APIs to the V1.0 (production) endpoint in a reasonable time, say within one year after introducing new functionality in a beta version.
You can help by signing into the feedback portal and voting for the proposal. Nothing described above is radical. The requests made in the proposal make perfect sense. I would add the need to ensure consistency across Microsoft 365 for PowerShell modules. It’s unacceptable when major PowerShell modules like Exchange Online and the Microsoft Graph PowerShell SDK clash over assemblies. It’s also unacceptable when modules like the SharePoint management module stay fixed in PowerShell V5.1.
Moving Towards an Ideal Situation
Even in the ever-changing world of the cloud, customers like predictability and reliability. The ideal situation would be to have a release of all Microsoft 365 developer components on a predictable cadence, say every two months. Each release should make progress towards the goal of achieving full coverage of all Microsoft 365 administrative interfaces and include all the major modules (Exchange, SharePoint, Teams, Microsoft Graph PowerShell SDK, Entra ID) in a manner that all modules released on a certain date are guaranteed to work together.
Such an approach is sensible, but it won’t happen because of Microsoft organizational politics. Unless of course sufficient customers protest the current state by upvoting the request in the feedback portal. Two minutes of your time might be enough to help remediate the problem. Is that too much to ask?
So much change, all the time. It’s a challenge to stay abreast of all the updates Microsoft makes across the Microsoft 365 ecosystem. Subscribe to the Office 365 for IT Pros eBook to receive insights updated monthly into what happens within Microsoft 365, why it happens, and what new features and capabilities mean for your tenant.
Issues with nlinfit – not fitting second parameter? Fitting a Blackbody curve
Hello all,
I have code to fit a curve to a set of data (a black body curve). I used nlinfit so I could extract errors on the fitted parameters, but I can’t seem to get the second parameter to be considered?
I should end up with a set of 50 plots for the fits, and then a final plot showing luminosity, temp and radius over time. However, the temp over time plot is just displaying the initial value for nlinfit.
Any ideas on what I am doing wrong here?
%errors and fitting of BB function
%constants needed for BB equation
% SI UNITS
c=2.998e8;
h=6.6261e-34;
kb=1.38e-23;
%wavelengths, x data
x = [0.000000212 0.000000231 0.000000291 3.465E-07 3.543E-07 0.000000365 0.000000445 0.000000477 0.000000551 6.231E-07 0.000000658 7.625E-07 0.000000806 9.134E-07 0.00000163];
%flux densities at one epoch (each row is an epoch).
intvaluesallSED = readmatrix("int_values_allSED_3.xlsx");
results = zeros(50,8);
for i = 1:size(intvaluesallSED,1)
flux_den_uncorrected = intvaluesallSED(i,:);
flux_den = flux_den_uncorrected – [3.044257148 2.764380323 1.849636489 1.578043671 1.551640889 1.518279132 1.295492704 1.195475706 0.975440567 0.82279158 0.761751691 0.606214695 0.552059178 0.443122732 0.168971244];
%convert flux den to fv (in SI units)
fv = 3.631e-23.*exp(-0.921034.*flux_den);
%convert fv to f_lambda
f_lambda = fv.*(c./(x.^2));
%for plotting use lambda*f_lambda – y data
y = x.*f_lambda;
%plot figure with data
figure
plot(x, y, ‘o’, ‘MarkerFaceColor’, ‘b’, ‘MarkerSize’, 5);
xlabel(‘Wavelength (m)’);
ylabel(‘lambdaf_lambda’);
%BB function and fit. Here b1 is the aplha multiplication factor and b2 is
%temp. Multiplied by wavelength(xdata) as plotted with lambda*f_lambda
BBfun = @(b,x) (b(1)).*x.*(2.*pi.*h.*(c^2)./(x.^5)).*(1./(exp((h.*c)./(x.*kb.*b(2)))-1));
beta0 = [2.2e-27 ;3e4];
[beta,R,J,CovB,MSE,ErrorModelInfo] = nlinfit(x,y,BBfun,beta0);
%Output values and errors
% b1 is alplha multiplication factor = (R/D)^2, detnoted A. b2 is temp
ci = nlparci(beta,R,"Covar",CovB);
errA = (((ci(1,2)) – (ci(1,1)))/2);
errTemp = ((ci(2,2) – ci(2,1))/2);
A = ((beta(1,1)));
Temp = beta(2,1);
Rad = sqrt(A)*1.85e+24; %convert to radius, distance to transient 1.85e+24
errRad = Rad*sqrt(((0.5*errA)/A)^2 + (4.19e+22/1.85e+24)^2); %error propagation from aplha and distance
%stephan-boltzmann constant
sb = 5.67e-08;
Lum = (4*pi*Rad^2*sb*Temp^4)*1e7; %in erg/s
errLum = Lum*sqrt((2*errRad/Rad)^2 + (4*errTemp/Temp)^2);
results(i,1) = A;
results(i,2) = errA;
results(i,3) = Rad;
results(i,4) = errRad;
results(i,5) = Temp;
results(i,6) = errTemp;
results(i,7) = Lum;
results(i,8) = errLum;
%plot fit
hold on
plot(x,BBfun(beta,x),’-r’);
hold off
end
%final plots
time = [3.4421, 4.2246, 5.695, 6.6946, 7.0809, 7.2812, 8.8125, 9.6112, 10.6128, 11.5382, 11.6742, 13.3953, 14.7236, 15.6233, 16.7919, 17.0436, 18.7829, 19.1707, 20.6369, 21.7721, 22.1614, 22.1619, 23.1565, 23.1571, 23.7631, 24.2266, 25.2168, 26.1579, 26.7577, 27.4169, 29.7512, 31.5264, 33.9284, 35.2449, 37.2385, 38.8981, 39.1618, 40.3597, 41.1686, 42.1524, 44.2117, 45.8706, 46.9335, 47.2638, 48.4002, 50.1866, 52.4438, 55.7044, 60.2141, 69.4632];
figure
t=tiledlayout(3,1,’TileSpacing’,’none’);
nexttile;
errorbar(time, results(:,7), results(:,8), ‘.’, ‘MarkerSize’, 12)
xlabel(‘Time (MJD-58285)’)
ylabel(‘Luminosity (erg/s)’)
title(‘Luminosity over time’)
set(gca, ‘YScale’, ‘log’)
ytickformat(‘%.1e’)
ylim([6e41 4e45])
nexttile;
errorbar(time, results(:,3), results(:,4), ‘.’, ‘MarkerSize’, 12)
xlabel(‘Time (MJD-58285)’)
ylabel(‘Radius (m)’)
%title(‘Radius over time’)
ax2 = gca;
ax2.YAxis.Exponent = 0;
ytickformat(‘%.1e’)
ylim([2.5e11 2.5e13])
nexttile;
errorbar(time, results(:,5), results(:,6), ‘.’, ‘MarkerSize’, 12)
xlabel(‘Time (MJD-58285)’)
ylabel(‘Temperature (K)’)
%title(‘Temperature over time’)
ax3 = gca;
ax3.YAxis.Exponent = 0;
ytickformat(‘%.1e’)
ylim([0 4e4])
The file needed to run the code is attached as well.Hello all,
I have code to fit a curve to a set of data (a black body curve). I used nlinfit so I could extract errors on the fitted parameters, but I can’t seem to get the second parameter to be considered?
I should end up with a set of 50 plots for the fits, and then a final plot showing luminosity, temp and radius over time. However, the temp over time plot is just displaying the initial value for nlinfit.
Any ideas on what I am doing wrong here?
%errors and fitting of BB function
%constants needed for BB equation
% SI UNITS
c=2.998e8;
h=6.6261e-34;
kb=1.38e-23;
%wavelengths, x data
x = [0.000000212 0.000000231 0.000000291 3.465E-07 3.543E-07 0.000000365 0.000000445 0.000000477 0.000000551 6.231E-07 0.000000658 7.625E-07 0.000000806 9.134E-07 0.00000163];
%flux densities at one epoch (each row is an epoch).
intvaluesallSED = readmatrix("int_values_allSED_3.xlsx");
results = zeros(50,8);
for i = 1:size(intvaluesallSED,1)
flux_den_uncorrected = intvaluesallSED(i,:);
flux_den = flux_den_uncorrected – [3.044257148 2.764380323 1.849636489 1.578043671 1.551640889 1.518279132 1.295492704 1.195475706 0.975440567 0.82279158 0.761751691 0.606214695 0.552059178 0.443122732 0.168971244];
%convert flux den to fv (in SI units)
fv = 3.631e-23.*exp(-0.921034.*flux_den);
%convert fv to f_lambda
f_lambda = fv.*(c./(x.^2));
%for plotting use lambda*f_lambda – y data
y = x.*f_lambda;
%plot figure with data
figure
plot(x, y, ‘o’, ‘MarkerFaceColor’, ‘b’, ‘MarkerSize’, 5);
xlabel(‘Wavelength (m)’);
ylabel(‘lambdaf_lambda’);
%BB function and fit. Here b1 is the aplha multiplication factor and b2 is
%temp. Multiplied by wavelength(xdata) as plotted with lambda*f_lambda
BBfun = @(b,x) (b(1)).*x.*(2.*pi.*h.*(c^2)./(x.^5)).*(1./(exp((h.*c)./(x.*kb.*b(2)))-1));
beta0 = [2.2e-27 ;3e4];
[beta,R,J,CovB,MSE,ErrorModelInfo] = nlinfit(x,y,BBfun,beta0);
%Output values and errors
% b1 is alplha multiplication factor = (R/D)^2, detnoted A. b2 is temp
ci = nlparci(beta,R,"Covar",CovB);
errA = (((ci(1,2)) – (ci(1,1)))/2);
errTemp = ((ci(2,2) – ci(2,1))/2);
A = ((beta(1,1)));
Temp = beta(2,1);
Rad = sqrt(A)*1.85e+24; %convert to radius, distance to transient 1.85e+24
errRad = Rad*sqrt(((0.5*errA)/A)^2 + (4.19e+22/1.85e+24)^2); %error propagation from aplha and distance
%stephan-boltzmann constant
sb = 5.67e-08;
Lum = (4*pi*Rad^2*sb*Temp^4)*1e7; %in erg/s
errLum = Lum*sqrt((2*errRad/Rad)^2 + (4*errTemp/Temp)^2);
results(i,1) = A;
results(i,2) = errA;
results(i,3) = Rad;
results(i,4) = errRad;
results(i,5) = Temp;
results(i,6) = errTemp;
results(i,7) = Lum;
results(i,8) = errLum;
%plot fit
hold on
plot(x,BBfun(beta,x),’-r’);
hold off
end
%final plots
time = [3.4421, 4.2246, 5.695, 6.6946, 7.0809, 7.2812, 8.8125, 9.6112, 10.6128, 11.5382, 11.6742, 13.3953, 14.7236, 15.6233, 16.7919, 17.0436, 18.7829, 19.1707, 20.6369, 21.7721, 22.1614, 22.1619, 23.1565, 23.1571, 23.7631, 24.2266, 25.2168, 26.1579, 26.7577, 27.4169, 29.7512, 31.5264, 33.9284, 35.2449, 37.2385, 38.8981, 39.1618, 40.3597, 41.1686, 42.1524, 44.2117, 45.8706, 46.9335, 47.2638, 48.4002, 50.1866, 52.4438, 55.7044, 60.2141, 69.4632];
figure
t=tiledlayout(3,1,’TileSpacing’,’none’);
nexttile;
errorbar(time, results(:,7), results(:,8), ‘.’, ‘MarkerSize’, 12)
xlabel(‘Time (MJD-58285)’)
ylabel(‘Luminosity (erg/s)’)
title(‘Luminosity over time’)
set(gca, ‘YScale’, ‘log’)
ytickformat(‘%.1e’)
ylim([6e41 4e45])
nexttile;
errorbar(time, results(:,3), results(:,4), ‘.’, ‘MarkerSize’, 12)
xlabel(‘Time (MJD-58285)’)
ylabel(‘Radius (m)’)
%title(‘Radius over time’)
ax2 = gca;
ax2.YAxis.Exponent = 0;
ytickformat(‘%.1e’)
ylim([2.5e11 2.5e13])
nexttile;
errorbar(time, results(:,5), results(:,6), ‘.’, ‘MarkerSize’, 12)
xlabel(‘Time (MJD-58285)’)
ylabel(‘Temperature (K)’)
%title(‘Temperature over time’)
ax3 = gca;
ax3.YAxis.Exponent = 0;
ytickformat(‘%.1e’)
ylim([0 4e4])
The file needed to run the code is attached as well. Hello all,
I have code to fit a curve to a set of data (a black body curve). I used nlinfit so I could extract errors on the fitted parameters, but I can’t seem to get the second parameter to be considered?
I should end up with a set of 50 plots for the fits, and then a final plot showing luminosity, temp and radius over time. However, the temp over time plot is just displaying the initial value for nlinfit.
Any ideas on what I am doing wrong here?
%errors and fitting of BB function
%constants needed for BB equation
% SI UNITS
c=2.998e8;
h=6.6261e-34;
kb=1.38e-23;
%wavelengths, x data
x = [0.000000212 0.000000231 0.000000291 3.465E-07 3.543E-07 0.000000365 0.000000445 0.000000477 0.000000551 6.231E-07 0.000000658 7.625E-07 0.000000806 9.134E-07 0.00000163];
%flux densities at one epoch (each row is an epoch).
intvaluesallSED = readmatrix("int_values_allSED_3.xlsx");
results = zeros(50,8);
for i = 1:size(intvaluesallSED,1)
flux_den_uncorrected = intvaluesallSED(i,:);
flux_den = flux_den_uncorrected – [3.044257148 2.764380323 1.849636489 1.578043671 1.551640889 1.518279132 1.295492704 1.195475706 0.975440567 0.82279158 0.761751691 0.606214695 0.552059178 0.443122732 0.168971244];
%convert flux den to fv (in SI units)
fv = 3.631e-23.*exp(-0.921034.*flux_den);
%convert fv to f_lambda
f_lambda = fv.*(c./(x.^2));
%for plotting use lambda*f_lambda – y data
y = x.*f_lambda;
%plot figure with data
figure
plot(x, y, ‘o’, ‘MarkerFaceColor’, ‘b’, ‘MarkerSize’, 5);
xlabel(‘Wavelength (m)’);
ylabel(‘lambdaf_lambda’);
%BB function and fit. Here b1 is the aplha multiplication factor and b2 is
%temp. Multiplied by wavelength(xdata) as plotted with lambda*f_lambda
BBfun = @(b,x) (b(1)).*x.*(2.*pi.*h.*(c^2)./(x.^5)).*(1./(exp((h.*c)./(x.*kb.*b(2)))-1));
beta0 = [2.2e-27 ;3e4];
[beta,R,J,CovB,MSE,ErrorModelInfo] = nlinfit(x,y,BBfun,beta0);
%Output values and errors
% b1 is alplha multiplication factor = (R/D)^2, detnoted A. b2 is temp
ci = nlparci(beta,R,"Covar",CovB);
errA = (((ci(1,2)) – (ci(1,1)))/2);
errTemp = ((ci(2,2) – ci(2,1))/2);
A = ((beta(1,1)));
Temp = beta(2,1);
Rad = sqrt(A)*1.85e+24; %convert to radius, distance to transient 1.85e+24
errRad = Rad*sqrt(((0.5*errA)/A)^2 + (4.19e+22/1.85e+24)^2); %error propagation from aplha and distance
%stephan-boltzmann constant
sb = 5.67e-08;
Lum = (4*pi*Rad^2*sb*Temp^4)*1e7; %in erg/s
errLum = Lum*sqrt((2*errRad/Rad)^2 + (4*errTemp/Temp)^2);
results(i,1) = A;
results(i,2) = errA;
results(i,3) = Rad;
results(i,4) = errRad;
results(i,5) = Temp;
results(i,6) = errTemp;
results(i,7) = Lum;
results(i,8) = errLum;
%plot fit
hold on
plot(x,BBfun(beta,x),’-r’);
hold off
end
%final plots
time = [3.4421, 4.2246, 5.695, 6.6946, 7.0809, 7.2812, 8.8125, 9.6112, 10.6128, 11.5382, 11.6742, 13.3953, 14.7236, 15.6233, 16.7919, 17.0436, 18.7829, 19.1707, 20.6369, 21.7721, 22.1614, 22.1619, 23.1565, 23.1571, 23.7631, 24.2266, 25.2168, 26.1579, 26.7577, 27.4169, 29.7512, 31.5264, 33.9284, 35.2449, 37.2385, 38.8981, 39.1618, 40.3597, 41.1686, 42.1524, 44.2117, 45.8706, 46.9335, 47.2638, 48.4002, 50.1866, 52.4438, 55.7044, 60.2141, 69.4632];
figure
t=tiledlayout(3,1,’TileSpacing’,’none’);
nexttile;
errorbar(time, results(:,7), results(:,8), ‘.’, ‘MarkerSize’, 12)
xlabel(‘Time (MJD-58285)’)
ylabel(‘Luminosity (erg/s)’)
title(‘Luminosity over time’)
set(gca, ‘YScale’, ‘log’)
ytickformat(‘%.1e’)
ylim([6e41 4e45])
nexttile;
errorbar(time, results(:,3), results(:,4), ‘.’, ‘MarkerSize’, 12)
xlabel(‘Time (MJD-58285)’)
ylabel(‘Radius (m)’)
%title(‘Radius over time’)
ax2 = gca;
ax2.YAxis.Exponent = 0;
ytickformat(‘%.1e’)
ylim([2.5e11 2.5e13])
nexttile;
errorbar(time, results(:,5), results(:,6), ‘.’, ‘MarkerSize’, 12)
xlabel(‘Time (MJD-58285)’)
ylabel(‘Temperature (K)’)
%title(‘Temperature over time’)
ax3 = gca;
ax3.YAxis.Exponent = 0;
ytickformat(‘%.1e’)
ylim([0 4e4])
The file needed to run the code is attached as well. nlinfit, nonlinear, astronomy, astrophysics, blackbody, matlab, curve fitting, parameters, fitting, statistics, physics MATLAB Answers — New Questions
Simscape: Constraining Translational Network with Slider Crank Block
Hi,
I am building a Simscape digital twin of a twin-cylinder opposed-piston engine. I am unsure if my basic block configuration is correct to describe a single crankshaft with two opposing cylinders. When the pistons of the left and right cylinders are at their TDC positions (initial conditions set to TDC with peak cylinder pressures) where the crank initial angle should be 270 degrees CA and 90 degrees CA (horizontal), respectively. However, in the model, I need to enter 180 CA and 90 CA, respectively, in an attempt to get reasonable rotation of the crank. I have used an Ideal Angular Velocity Source (94.3 rad/s) in an attempt to help debugging, however, the motion of the slider seems erratic. I will paste a schematic of the crank assembly, and image of the model below. Any help be great, as seem to struggling with what seems like a basic Simscape task of constraining the translational motion of the piston mass with the slider-crank block.
My model uses a simply force input imported directly from the workspace, where the left cylinder force is positive in sign (translating the piston mass to the right), and the right cylinder force is negative in sign (translating the piston mass to the left), and the translational motion is constrained by the crank assemby, with a crank radius of 70 mm (total stroke of 140 mm) and a con rod length of 400 mm, and assumes a rotational speed of 94 rad/s (15 Hz) so a basic model.
Thanks, PatrickHi,
I am building a Simscape digital twin of a twin-cylinder opposed-piston engine. I am unsure if my basic block configuration is correct to describe a single crankshaft with two opposing cylinders. When the pistons of the left and right cylinders are at their TDC positions (initial conditions set to TDC with peak cylinder pressures) where the crank initial angle should be 270 degrees CA and 90 degrees CA (horizontal), respectively. However, in the model, I need to enter 180 CA and 90 CA, respectively, in an attempt to get reasonable rotation of the crank. I have used an Ideal Angular Velocity Source (94.3 rad/s) in an attempt to help debugging, however, the motion of the slider seems erratic. I will paste a schematic of the crank assembly, and image of the model below. Any help be great, as seem to struggling with what seems like a basic Simscape task of constraining the translational motion of the piston mass with the slider-crank block.
My model uses a simply force input imported directly from the workspace, where the left cylinder force is positive in sign (translating the piston mass to the right), and the right cylinder force is negative in sign (translating the piston mass to the left), and the translational motion is constrained by the crank assemby, with a crank radius of 70 mm (total stroke of 140 mm) and a con rod length of 400 mm, and assumes a rotational speed of 94 rad/s (15 Hz) so a basic model.
Thanks, Patrick Hi,
I am building a Simscape digital twin of a twin-cylinder opposed-piston engine. I am unsure if my basic block configuration is correct to describe a single crankshaft with two opposing cylinders. When the pistons of the left and right cylinders are at their TDC positions (initial conditions set to TDC with peak cylinder pressures) where the crank initial angle should be 270 degrees CA and 90 degrees CA (horizontal), respectively. However, in the model, I need to enter 180 CA and 90 CA, respectively, in an attempt to get reasonable rotation of the crank. I have used an Ideal Angular Velocity Source (94.3 rad/s) in an attempt to help debugging, however, the motion of the slider seems erratic. I will paste a schematic of the crank assembly, and image of the model below. Any help be great, as seem to struggling with what seems like a basic Simscape task of constraining the translational motion of the piston mass with the slider-crank block.
My model uses a simply force input imported directly from the workspace, where the left cylinder force is positive in sign (translating the piston mass to the right), and the right cylinder force is negative in sign (translating the piston mass to the left), and the translational motion is constrained by the crank assemby, with a crank radius of 70 mm (total stroke of 140 mm) and a con rod length of 400 mm, and assumes a rotational speed of 94 rad/s (15 Hz) so a basic model.
Thanks, Patrick simscape, simulink MATLAB Answers — New Questions
What Is the Behavior of Symbolic nchoosek With n < 0 ?
According to nchoosek:Algorithms
"If k < 0 or n – k < 0, nchoosek(n,k) returns 0."
syms n k
f(n,k) = nchoosek(n,k)
Using the example at Binomial Coefficients for Numeric and Symbolic Arguments
nn = sym(-7); kk = sym(2);
isAlways(nn – kk < 0)
f(nn,kk)
The result should be 0 according to the algorithms section.
But given that it’s not zero, where did it come from?
Not a simple factorial expression
try
factorial(nn)/factorial(kk)/factorial(nn-kk);
catch ME
ME.message
end
Try an expanded version of f
f(n,k) = expand(f)
The above expression does not match (to the eye) More About.
It also doesn’t yield the original result
f(nn,kk)
Nor does the simplified form (which also doesn’t visually match More About)
f = simplify(f)
f(nn,kk)
Is the doc wrong and symbolic nchoosek(-7,2) should return 28? If so, where does 28 come from?
FWIW, nchoosek is not using abs(n)
f(abs(nn),kk)According to nchoosek:Algorithms
"If k < 0 or n – k < 0, nchoosek(n,k) returns 0."
syms n k
f(n,k) = nchoosek(n,k)
Using the example at Binomial Coefficients for Numeric and Symbolic Arguments
nn = sym(-7); kk = sym(2);
isAlways(nn – kk < 0)
f(nn,kk)
The result should be 0 according to the algorithms section.
But given that it’s not zero, where did it come from?
Not a simple factorial expression
try
factorial(nn)/factorial(kk)/factorial(nn-kk);
catch ME
ME.message
end
Try an expanded version of f
f(n,k) = expand(f)
The above expression does not match (to the eye) More About.
It also doesn’t yield the original result
f(nn,kk)
Nor does the simplified form (which also doesn’t visually match More About)
f = simplify(f)
f(nn,kk)
Is the doc wrong and symbolic nchoosek(-7,2) should return 28? If so, where does 28 come from?
FWIW, nchoosek is not using abs(n)
f(abs(nn),kk) According to nchoosek:Algorithms
"If k < 0 or n – k < 0, nchoosek(n,k) returns 0."
syms n k
f(n,k) = nchoosek(n,k)
Using the example at Binomial Coefficients for Numeric and Symbolic Arguments
nn = sym(-7); kk = sym(2);
isAlways(nn – kk < 0)
f(nn,kk)
The result should be 0 according to the algorithms section.
But given that it’s not zero, where did it come from?
Not a simple factorial expression
try
factorial(nn)/factorial(kk)/factorial(nn-kk);
catch ME
ME.message
end
Try an expanded version of f
f(n,k) = expand(f)
The above expression does not match (to the eye) More About.
It also doesn’t yield the original result
f(nn,kk)
Nor does the simplified form (which also doesn’t visually match More About)
f = simplify(f)
f(nn,kk)
Is the doc wrong and symbolic nchoosek(-7,2) should return 28? If so, where does 28 come from?
FWIW, nchoosek is not using abs(n)
f(abs(nn),kk) symbolic, nchoosek, negative argument MATLAB Answers — New Questions
How to send data from an RFSoC device to the Host PC?
Dear all,
I am using AMD Zynq Ultrascale+ ZCU111 evaluation board for a simple receiver design.
Currently I record a signal from an ADC and stream it to the processing system using AXI4-Stream to Software. I can generate a bitstream using SoC Builder, run the external mode model and see the recorded signal.
The question is now how to write, e.g., 1ms of this data stream to a file on the host PC? (e.g. for the FPGA algorithm verification)
Thank you!Dear all,
I am using AMD Zynq Ultrascale+ ZCU111 evaluation board for a simple receiver design.
Currently I record a signal from an ADC and stream it to the processing system using AXI4-Stream to Software. I can generate a bitstream using SoC Builder, run the external mode model and see the recorded signal.
The question is now how to write, e.g., 1ms of this data stream to a file on the host PC? (e.g. for the FPGA algorithm verification)
Thank you! Dear all,
I am using AMD Zynq Ultrascale+ ZCU111 evaluation board for a simple receiver design.
Currently I record a signal from an ADC and stream it to the processing system using AXI4-Stream to Software. I can generate a bitstream using SoC Builder, run the external mode model and see the recorded signal.
The question is now how to write, e.g., 1ms of this data stream to a file on the host PC? (e.g. for the FPGA algorithm verification)
Thank you! soc blockset, embedded coder, target hardware, communication, external mode, data transfer, rfsoc, zcu111 MATLAB Answers — New Questions
Parallel processing is not able to use all my cores
I have the same problem.
The SuperMicro MBD-H12DSI-N6-B motherboard has 2 x 48-core AMD EPYC 7K62 processors.
But MATLAB (R2024a) sees only one of them and opens a pool with 48 workers.
When multiplying and inverting matrices, the dual-processor system load is 50…65%.
The operating system is Microsoft Windows 10 Pro for Workstations 22H2.
The maxNumCompThreads command produces the following result:
>> N = maxNumCompThreads
N =
48
An attempt to set the maximum number of workers to 96 succeeds:
>> LASTN = maxNumCompThreads(96)
LASTN =
48
>> N = maxNumCompThreads
N =
96
But after that, a pool is opened with 48 workers as well:
>> parpool
Starting parallel pool (parpool) using the ‘Processes’ profile …
Connected to parallel pool with 48 workers.
ans =
ProcessPool with properties:
Connected: true
NumWorkers: 48
However, I did not find in the settings where I can set the maximum number of workers.
The feature(‘numcores’) command produces the following result:
>> feature(‘numcores’)
MATLAB detected: 96 physical cores.
MATLAB detected: 96 logical cores.
MATLAB was assigned: 48 logical cores by the OS.
MATLAB is using: 48 logical cores.
MATLAB is not using all logical cores because Operating System restricted the number of cores to: 48.
ans =
48
That is, MATLAB complains about the Windows operating system
What to do?
Is it possible to run all 96 cores?I have the same problem.
The SuperMicro MBD-H12DSI-N6-B motherboard has 2 x 48-core AMD EPYC 7K62 processors.
But MATLAB (R2024a) sees only one of them and opens a pool with 48 workers.
When multiplying and inverting matrices, the dual-processor system load is 50…65%.
The operating system is Microsoft Windows 10 Pro for Workstations 22H2.
The maxNumCompThreads command produces the following result:
>> N = maxNumCompThreads
N =
48
An attempt to set the maximum number of workers to 96 succeeds:
>> LASTN = maxNumCompThreads(96)
LASTN =
48
>> N = maxNumCompThreads
N =
96
But after that, a pool is opened with 48 workers as well:
>> parpool
Starting parallel pool (parpool) using the ‘Processes’ profile …
Connected to parallel pool with 48 workers.
ans =
ProcessPool with properties:
Connected: true
NumWorkers: 48
However, I did not find in the settings where I can set the maximum number of workers.
The feature(‘numcores’) command produces the following result:
>> feature(‘numcores’)
MATLAB detected: 96 physical cores.
MATLAB detected: 96 logical cores.
MATLAB was assigned: 48 logical cores by the OS.
MATLAB is using: 48 logical cores.
MATLAB is not using all logical cores because Operating System restricted the number of cores to: 48.
ans =
48
That is, MATLAB complains about the Windows operating system
What to do?
Is it possible to run all 96 cores? I have the same problem.
The SuperMicro MBD-H12DSI-N6-B motherboard has 2 x 48-core AMD EPYC 7K62 processors.
But MATLAB (R2024a) sees only one of them and opens a pool with 48 workers.
When multiplying and inverting matrices, the dual-processor system load is 50…65%.
The operating system is Microsoft Windows 10 Pro for Workstations 22H2.
The maxNumCompThreads command produces the following result:
>> N = maxNumCompThreads
N =
48
An attempt to set the maximum number of workers to 96 succeeds:
>> LASTN = maxNumCompThreads(96)
LASTN =
48
>> N = maxNumCompThreads
N =
96
But after that, a pool is opened with 48 workers as well:
>> parpool
Starting parallel pool (parpool) using the ‘Processes’ profile …
Connected to parallel pool with 48 workers.
ans =
ProcessPool with properties:
Connected: true
NumWorkers: 48
However, I did not find in the settings where I can set the maximum number of workers.
The feature(‘numcores’) command produces the following result:
>> feature(‘numcores’)
MATLAB detected: 96 physical cores.
MATLAB detected: 96 logical cores.
MATLAB was assigned: 48 logical cores by the OS.
MATLAB is using: 48 logical cores.
MATLAB is not using all logical cores because Operating System restricted the number of cores to: 48.
ans =
48
That is, MATLAB complains about the Windows operating system
What to do?
Is it possible to run all 96 cores? parallel processing MATLAB Answers — New Questions