Month: October 2024
Bring back right click to chose to run programs on dGPU(dedicated GPU) or iGPU(integrated GPU)
I spend about 2 hours trying to figure out why some of my graphically intensive program ran smoothly and others did not…
Apparently MS with their Windows 11 in their infinite wisdom chose to decide for me which programs uses which Gpu! With some arcane arbitrary logic no less…
Without asking!
It used to be a simple something the user could change with a simple right click…
Useful for people who do a lot of graphic design or just play games on their PCs!
Now you have to go thought 4 different UIs Systems > display > graphics and manually trace the program.exe…
I had to do this with something as simple and ubiquitous as my web browser when video streaming was low fidelity.
I assumed it was a network problem or a browser problem at first… Alas it was more asinine that that…
Firefox was running on iGPU…
The “let windows decide” option needs to be improved or redone.
And please if there are no plans to bring back useful functionalities that existed in older windows version and FOR WHATEVER reason removed…
AT least make sure to bring them back in future windows versions.
Because linux is seeming more and more enticing with each version of windows showing bad decisions like this…
I spend about 2 hours trying to figure out why some of my graphically intensive program ran smoothly and others did not…Apparently MS with their Windows 11 in their infinite wisdom chose to decide for me which programs uses which Gpu! With some arcane arbitrary logic no less…Without asking!It used to be a simple something the user could change with a simple right click…Useful for people who do a lot of graphic design or just play games on their PCs!Now you have to go thought 4 different UIs Systems > display > graphics and manually trace the program.exe…I had to do this with something as simple and ubiquitous as my web browser when video streaming was low fidelity.I assumed it was a network problem or a browser problem at first… Alas it was more asinine that that…Firefox was running on iGPU…The “let windows decide” option needs to be improved or redone.And please if there are no plans to bring back useful functionalities that existed in older windows version and FOR WHATEVER reason removed…AT least make sure to bring them back in future windows versions.Because linux is seeming more and more enticing with each version of windows showing bad decisions like this… Read More
Japan characters displaying as garbled characters in File attachments in 2402 outlook version.
I am encountering an issue when sending email attachments with Japanese characters in the file names, encoded using RFC 2231 and UTF-8. The attachments are displayed with garbled characters in the file names when viewed in Outlook version 2402. However, this issue does not occur in Outlook 2016 or other email clients such as Gmail. Could you please advise on potential solutions for this problem?
I am encountering an issue when sending email attachments with Japanese characters in the file names, encoded using RFC 2231 and UTF-8. The attachments are displayed with garbled characters in the file names when viewed in Outlook version 2402. However, this issue does not occur in Outlook 2016 or other email clients such as Gmail. Could you please advise on potential solutions for this problem? Read More
Formula Excel Help
Hello Community,
i need help to create a Formula – i would be very happy if someone can help me here.
I have more then 400 lines and i need to change all of them as below.
020018007615
is the standard but i need this number as below:
020-018007615
Actuall i need to change every line by mysef to mention the “-” after the first three numbers.
Is there a possibility to have a Formula here that every number will be shown as xxx-xxxxxxxxx ?
Thank you all for your help!
Jenny
Hello Community, i need help to create a Formula – i would be very happy if someone can help me here. I have more then 400 lines and i need to change all of them as below. 020018007615is the standard but i need this number as below:020-018007615 Actuall i need to change every line by mysef to mention the “-” after the first three numbers. Is there a possibility to have a Formula here that every number will be shown as xxx-xxxxxxxxx ? Thank you all for your help!Jenny Read More
安裝在電腦上的其他位置 (Installation of MATLAB on a different drive)
請問我能安裝到C槽以外的地方嗎,每次當我想要這麼做時,安裝程式就會出現錯誤(網路錯誤),但這很明顯和網路無關,因為我安裝至C槽時沒有問題。
Can I install MATLAB on drives other than the C drive? Each time I attempt to do this, the installer displays a network error; however, it is clearly not network-related, as I have previously installed it without any issues on the C drive.請問我能安裝到C槽以外的地方嗎,每次當我想要這麼做時,安裝程式就會出現錯誤(網路錯誤),但這很明顯和網路無關,因為我安裝至C槽時沒有問題。
Can I install MATLAB on drives other than the C drive? Each time I attempt to do this, the installer displays a network error; however, it is clearly not network-related, as I have previously installed it without any issues on the C drive. 請問我能安裝到C槽以外的地方嗎,每次當我想要這麼做時,安裝程式就會出現錯誤(網路錯誤),但這很明顯和網路無關,因為我安裝至C槽時沒有問題。
Can I install MATLAB on drives other than the C drive? Each time I attempt to do this, the installer displays a network error; however, it is clearly not network-related, as I have previously installed it without any issues on the C drive. installation MATLAB Answers — New Questions
Plot exceeding time limit due to large dataset
I have a dataset in which I have to categorize the rise of UV levels from a satellite.
As this satellite orbits the Earth there are periods where it cannot process the UV levels.
The raw data that I am getting is close to a square wave.
I have to categorize this data into rising where the satellite comes out of the influence of the Earth,
OnDuty where the satellite is able to record data properly and falling where it is going behind the Earth.
The dataset contains a timestamp of frequency 1Hz where one value is recorded every second.
I want to categorize these three classes into for atleast now, red, green and blue.
The dataset contains the said timestamp and the corresponding UV values.
I am currently using a threshold to categorize the data and is working for a smaller dataset, however with a dataset of 80000 entry points my code is not able to run efficiently.
Here is the code. Where states stores the ith values nature. The problem lies within the for loop that runs for the plotting.
function categorize_square_wave()
y_foo = readtable("80000entries.csv", Range=’uv_values’);
y_values = table2array(y_foo);
k = 1; % Sensitivity parameter
differences = diff(y_values);
% comments have been put to remove staticstical computation
mu = mean(differences);
sigma = std(differences);
% Thresholds
T_high = mu + k * sigma;
T_low = mu – k * sigma;
% coded directly to reduce computation
% T_high = 500;
% T_low = -100;
% Categorizing based on threshold values
% Initialize states with zeros (default to dutiful)
states = zeros(1, length(differences));
% Assign states using vectorization
states(differences > T_high) = 1; % Rising
states(differences < T_low) = -1; % Falling
% Collect dutiful values
% dutiful_values = y_values(states == 0);
figure;
hold on;
for i = 1:length(differences)
if states(i) == 1
plot([i, i+1], [y_values(i), y_values(i+1)], ‘g’, ‘LineWidth’, 2); % Green for Rising
elseif states(i) == -1
plot([i, i+1], [y_values(i), y_values(i+1)], ‘r’, ‘LineWidth’, 2); % Red for Falling
else
plot([i, i+1], [y_values(i), y_values(i+1)], ‘b’, ‘LineWidth’, 2); % Blue for Dutiful
% dutiful_values = [dutiful_values, y_values(i)]; % Collect Dutiful values
end
end
% Plot original values in dashed lines
plot(y_values, ‘k–‘, ‘LineWidth’, 1); % Black dashed line for original values
yline(T_high, ‘r–‘, ‘T_{high}’, ‘LabelVerticalAlignment’, ‘bottom’, ‘LabelHorizontalAlignment’, ‘right’); % Dashed red line for T_high
xlabel(‘Sample Number’);
ylabel(‘y(t)’);
title(‘Classification of Changes in Square Wave’);
hold off;
end
categorize_square_wave();
% we have a good estimation of what values are
% is there a way to use flags on each state so that we can just plot
% without checking each value?
% implemetn flagsI have a dataset in which I have to categorize the rise of UV levels from a satellite.
As this satellite orbits the Earth there are periods where it cannot process the UV levels.
The raw data that I am getting is close to a square wave.
I have to categorize this data into rising where the satellite comes out of the influence of the Earth,
OnDuty where the satellite is able to record data properly and falling where it is going behind the Earth.
The dataset contains a timestamp of frequency 1Hz where one value is recorded every second.
I want to categorize these three classes into for atleast now, red, green and blue.
The dataset contains the said timestamp and the corresponding UV values.
I am currently using a threshold to categorize the data and is working for a smaller dataset, however with a dataset of 80000 entry points my code is not able to run efficiently.
Here is the code. Where states stores the ith values nature. The problem lies within the for loop that runs for the plotting.
function categorize_square_wave()
y_foo = readtable("80000entries.csv", Range=’uv_values’);
y_values = table2array(y_foo);
k = 1; % Sensitivity parameter
differences = diff(y_values);
% comments have been put to remove staticstical computation
mu = mean(differences);
sigma = std(differences);
% Thresholds
T_high = mu + k * sigma;
T_low = mu – k * sigma;
% coded directly to reduce computation
% T_high = 500;
% T_low = -100;
% Categorizing based on threshold values
% Initialize states with zeros (default to dutiful)
states = zeros(1, length(differences));
% Assign states using vectorization
states(differences > T_high) = 1; % Rising
states(differences < T_low) = -1; % Falling
% Collect dutiful values
% dutiful_values = y_values(states == 0);
figure;
hold on;
for i = 1:length(differences)
if states(i) == 1
plot([i, i+1], [y_values(i), y_values(i+1)], ‘g’, ‘LineWidth’, 2); % Green for Rising
elseif states(i) == -1
plot([i, i+1], [y_values(i), y_values(i+1)], ‘r’, ‘LineWidth’, 2); % Red for Falling
else
plot([i, i+1], [y_values(i), y_values(i+1)], ‘b’, ‘LineWidth’, 2); % Blue for Dutiful
% dutiful_values = [dutiful_values, y_values(i)]; % Collect Dutiful values
end
end
% Plot original values in dashed lines
plot(y_values, ‘k–‘, ‘LineWidth’, 1); % Black dashed line for original values
yline(T_high, ‘r–‘, ‘T_{high}’, ‘LabelVerticalAlignment’, ‘bottom’, ‘LabelHorizontalAlignment’, ‘right’); % Dashed red line for T_high
xlabel(‘Sample Number’);
ylabel(‘y(t)’);
title(‘Classification of Changes in Square Wave’);
hold off;
end
categorize_square_wave();
% we have a good estimation of what values are
% is there a way to use flags on each state so that we can just plot
% without checking each value?
% implemetn flags I have a dataset in which I have to categorize the rise of UV levels from a satellite.
As this satellite orbits the Earth there are periods where it cannot process the UV levels.
The raw data that I am getting is close to a square wave.
I have to categorize this data into rising where the satellite comes out of the influence of the Earth,
OnDuty where the satellite is able to record data properly and falling where it is going behind the Earth.
The dataset contains a timestamp of frequency 1Hz where one value is recorded every second.
I want to categorize these three classes into for atleast now, red, green and blue.
The dataset contains the said timestamp and the corresponding UV values.
I am currently using a threshold to categorize the data and is working for a smaller dataset, however with a dataset of 80000 entry points my code is not able to run efficiently.
Here is the code. Where states stores the ith values nature. The problem lies within the for loop that runs for the plotting.
function categorize_square_wave()
y_foo = readtable("80000entries.csv", Range=’uv_values’);
y_values = table2array(y_foo);
k = 1; % Sensitivity parameter
differences = diff(y_values);
% comments have been put to remove staticstical computation
mu = mean(differences);
sigma = std(differences);
% Thresholds
T_high = mu + k * sigma;
T_low = mu – k * sigma;
% coded directly to reduce computation
% T_high = 500;
% T_low = -100;
% Categorizing based on threshold values
% Initialize states with zeros (default to dutiful)
states = zeros(1, length(differences));
% Assign states using vectorization
states(differences > T_high) = 1; % Rising
states(differences < T_low) = -1; % Falling
% Collect dutiful values
% dutiful_values = y_values(states == 0);
figure;
hold on;
for i = 1:length(differences)
if states(i) == 1
plot([i, i+1], [y_values(i), y_values(i+1)], ‘g’, ‘LineWidth’, 2); % Green for Rising
elseif states(i) == -1
plot([i, i+1], [y_values(i), y_values(i+1)], ‘r’, ‘LineWidth’, 2); % Red for Falling
else
plot([i, i+1], [y_values(i), y_values(i+1)], ‘b’, ‘LineWidth’, 2); % Blue for Dutiful
% dutiful_values = [dutiful_values, y_values(i)]; % Collect Dutiful values
end
end
% Plot original values in dashed lines
plot(y_values, ‘k–‘, ‘LineWidth’, 1); % Black dashed line for original values
yline(T_high, ‘r–‘, ‘T_{high}’, ‘LabelVerticalAlignment’, ‘bottom’, ‘LabelHorizontalAlignment’, ‘right’); % Dashed red line for T_high
xlabel(‘Sample Number’);
ylabel(‘y(t)’);
title(‘Classification of Changes in Square Wave’);
hold off;
end
categorize_square_wave();
% we have a good estimation of what values are
% is there a way to use flags on each state so that we can just plot
% without checking each value?
% implemetn flags data cleaning, plotting, optimization MATLAB Answers — New Questions
The target principal name is incorrect. Cannot generate SSPI context. Microsoft SQL Server, Error:0)
Environmental details:
SQL Server Computer: YPSQL1
SQL Server Service Account: YPSQLSvc
Remote Client : YPSQL2
Domain Controller: YPDC
Issue: Trying to connect to SQL Server instance installed on YPSQL1 server from remote client machine YPSQL2
Issue:
Unable to connect to SQL Instance YPSQL1 from remote machine YPSQL2, getting below error while connecting:
“The target principal name is incorrect. Cannot generate SSPI context. (Microsoft SQL Server, Error: 0)”
Cause:
There are two reasons why we see the above error message
SQL SPN registration mismatch issue
EncryptionTypes mismatch issue
Reason 1: SQL SPN mismatch issue
Validate SPN registration status
We need to confirm the account configured to run SQL Server Service. In my server the name of the service account is “YPSQLSvc”
Let’s check the SPN registration status for the service account named “YPSQLSvc”
From SQL Server YPSQL1-> Open CMD -> Execute Setspn -L SQLSvc
There are no SPN registered for this service account. Errorlog shows the required SPNs and the status of registration.
2024-10-04 02:58:55.66 Server The SQL Server Network Interface library could not register the Service Principal Name (SPN) [ MSSQLSvc/YPSQL1.yp.lab ] for the SQL Server service. Windows return code: 0x21c7, state: 15. Failure to register a SPN might cause integrated authentication to use NTLM instead of Kerberos. This is an informational message. Further action is only required if Kerberos authentication is required by authentication policies and if the SPN has not been manually registered.
2024-10-04 02:58:55.66 Server The SQL Server Network Interface library could not register the Service Principal Name (SPN) [ MSSQLSvc/YPSQL1.yp.lab:1433 ] for the SQL Server service. Windows return code: 0x21c7, state: 15. Failure to register a SPN might cause integrated authentication to use NTLM instead of Kerberos. This is an informational message. Further action is only required if Kerberos authentication is required by authentication policies and if the SPN has not been manually registered.
Let’s register the SPN for the SQL Server Service account: -> We need to have proper permission to make changes in Active Directory user attributes. Domain Admin permission holder can modify the ServicePrincipalName (SPNs) but not the regular users.
From Domain Admin account -> Launch CMD -> Register the SPNs
Setspn -S MSSQLSvc/YPSQL1.yp.lab YPSQLSVc
Setspn -S MSSQLSvc/YPSQL1.yp.lab:1433 YPSQLSVc
After the successful SPN registration, restart the SQL Server Service on YPSQL1.
Then try to connect to YPSQL1 SQL instance from client machine YPSQL2.
If we are still facing same issue even after correcting the SPN’s issue, please follow the next steps.
Reason 2: EncryptionTypes mismatch issue
From the client machine YPSQL2, check the SYSTEM event log and find if event ID 4 logged or not.
Log Name: System
Source: Microsoft-Windows-Security-Kerberos
Date: 10/4/2024 3:02:55 AM
Event ID: 4
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: YPSQL2.yp.lab
Description:
The Kerberos client received a KRB_AP_ERR_MODIFIED error from the server SQLSvc. The target name used was MSSQLSvc/ypsql1.yp.lab:1433. This indicates that the target server failed to decrypt the ticket provided by the client. This can occur when the target server principal name (SPN) is registered on an account other than the account the target service is using. Ensure that the target SPN is only registered on the account used by the server. This error can also happen if the target service account password is different than what is configured on the Kerberos Key Distribution Center for that target service. Ensure that the service on the server and the KDC are both configured to use the same password. If the server name is not fully qualified, and the target domain (YP.LAB) is different from the client domain (YP.LAB), check if there are identically named server accounts in these two domains, or use the fully-qualified name to identify the server.
As per the above error message observed on client machine, it’s clear that there is a failure in decrypting Kerb Tickets.
Please consult your Active Directory Support team and take help to validate the settings to resolve the issue.
For SQL Server Instance hosted machine: YPSQL1
Lauch Active Directory Users and Computer MMC -> Client View -> Enable “Advanced Features”
Locate the SQL Server Computer object YPSQL1
Right click-> Properties
Click Attribute Editor -> select Attributes: msDS-SupportedEncryptionTypes -> click Edit
As per the above value 24 is for AES128 and AES256 EncryptionTypes. This means YPSQL1 allows and communicate with only AES128/AES256 type encryption methods.
For SQL Server Service Account named “YPSQLSVc”
Now validate the above same steps for SQL Server Service account named “YPSQLSvc”
Right click-> Properties
Click Attribute Editor -> select Attributes: msDS-SupportedEncryptionTypes -> click Edit
As per the above value <not set> means everything is allowed (all the encryption types).
So clearly there is a mismatch with “msDS-SupportedEncryptionTypes” attribute for SQL Server Instance hosted computer and SQL Server Service account. SQL Server Service Account may be trying to communicate via RC4 encryption mechanism with SQL Server Computer, however SQL Server Computer is set to accept only AES 128/ SES 256 encryption mechanism.
SQL Server Computer: msDS-SupportedEncryptionTypes -> 24 (AES128/AES256)
SQL Server Service Account: msDS-SupportedEncryptionTypes -> Not Set
Solution to resolve the issue is to correct the attribute msDS-SupportedEncryptionTypes mismatch issue for both SQL Server Server computer account (YPSQL1)) and SQL Server Service account (SQLSvc)
Made changes to SQL Server Service account “SQLSvc” to use AES 128/ AES 256 Encryption types.
Now both SQL Server Computer object and SQL Server Service account object matches the Supported Encryption Types.
SQL Server Computer (YPSQL1): msDS-SupportedEncryptionTypes -> 24 (AES128/AES256)
SQL Server Service Account (SQLSvc): msDS-SupportedEncryptionTypes -> 24 (AES128/AES256)
It may take some time for the above changes to replicate based on your Active Directory replication process. You could try to do GPUPDATE /FORCE or wait for the replication to complete.
Then try to connect SQL Server instance YPSQL1 from the remote client YPSQL2. It should connect successfully now.
Reference articles: Decrypting the Selection of Supported Kerberos Encryption Types – Microsoft Community Hub
Environmental details:
SQL Server Computer: YPSQL1
SQL Server Service Account: YPSQLSvc
Remote Client : YPSQL2
Domain Controller: YPDC
Issue: Trying to connect to SQL Server instance installed on YPSQL1 server from remote client machine YPSQL2
Issue:
Unable to connect to SQL Instance YPSQL1 from remote machine YPSQL2, getting below error while connecting:
“The target principal name is incorrect. Cannot generate SSPI context. (Microsoft SQL Server, Error: 0)”
Cause:
There are two reasons why we see the above error message
SQL SPN registration mismatch issue
EncryptionTypes mismatch issue
Reason 1: SQL SPN mismatch issue
Validate SPN registration status
We need to confirm the account configured to run SQL Server Service. In my server the name of the service account is “YPSQLSvc”
Let’s check the SPN registration status for the service account named “YPSQLSvc”
From SQL Server YPSQL1-> Open CMD -> Execute Setspn -L SQLSvc
There are no SPN registered for this service account. Errorlog shows the required SPNs and the status of registration.
2024-10-04 02:58:55.66 Server The SQL Server Network Interface library could not register the Service Principal Name (SPN) [ MSSQLSvc/YPSQL1.yp.lab ] for the SQL Server service. Windows return code: 0x21c7, state: 15. Failure to register a SPN might cause integrated authentication to use NTLM instead of Kerberos. This is an informational message. Further action is only required if Kerberos authentication is required by authentication policies and if the SPN has not been manually registered.
2024-10-04 02:58:55.66 Server The SQL Server Network Interface library could not register the Service Principal Name (SPN) [ MSSQLSvc/YPSQL1.yp.lab:1433 ] for the SQL Server service. Windows return code: 0x21c7, state: 15. Failure to register a SPN might cause integrated authentication to use NTLM instead of Kerberos. This is an informational message. Further action is only required if Kerberos authentication is required by authentication policies and if the SPN has not been manually registered.
Let’s register the SPN for the SQL Server Service account: -> We need to have proper permission to make changes in Active Directory user attributes. Domain Admin permission holder can modify the ServicePrincipalName (SPNs) but not the regular users.
From Domain Admin account -> Launch CMD -> Register the SPNs
Setspn -S MSSQLSvc/YPSQL1.yp.lab YPSQLSVc
Setspn -S MSSQLSvc/YPSQL1.yp.lab:1433 YPSQLSVc
After the successful SPN registration, restart the SQL Server Service on YPSQL1.
Then try to connect to YPSQL1 SQL instance from client machine YPSQL2.
If we are still facing same issue even after correcting the SPN’s issue, please follow the next steps.
Reason 2: EncryptionTypes mismatch issue
From the client machine YPSQL2, check the SYSTEM event log and find if event ID 4 logged or not.
Log Name: System
Source: Microsoft-Windows-Security-Kerberos
Date: 10/4/2024 3:02:55 AM
Event ID: 4
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: YPSQL2.yp.lab
Description:
The Kerberos client received a KRB_AP_ERR_MODIFIED error from the server SQLSvc. The target name used was MSSQLSvc/ypsql1.yp.lab:1433. This indicates that the target server failed to decrypt the ticket provided by the client. This can occur when the target server principal name (SPN) is registered on an account other than the account the target service is using. Ensure that the target SPN is only registered on the account used by the server. This error can also happen if the target service account password is different than what is configured on the Kerberos Key Distribution Center for that target service. Ensure that the service on the server and the KDC are both configured to use the same password. If the server name is not fully qualified, and the target domain (YP.LAB) is different from the client domain (YP.LAB), check if there are identically named server accounts in these two domains, or use the fully-qualified name to identify the server.
As per the above error message observed on client machine, it’s clear that there is a failure in decrypting Kerb Tickets.
Please consult your Active Directory Support team and take help to validate the settings to resolve the issue.
For SQL Server Instance hosted machine: YPSQL1
Lauch Active Directory Users and Computer MMC -> Client View -> Enable “Advanced Features”
Locate the SQL Server Computer object YPSQL1
Right click-> Properties
Click Attribute Editor -> select Attributes: msDS-SupportedEncryptionTypes -> click Edit
As per the above value 24 is for AES128 and AES256 EncryptionTypes. This means YPSQL1 allows and communicate with only AES128/AES256 type encryption methods.
For SQL Server Service Account named “YPSQLSVc”
Now validate the above same steps for SQL Server Service account named “YPSQLSvc”
Right click-> Properties
Click Attribute Editor -> select Attributes: msDS-SupportedEncryptionTypes -> click Edit
As per the above value <not set> means everything is allowed (all the encryption types).
So clearly there is a mismatch with “msDS-SupportedEncryptionTypes” attribute for SQL Server Instance hosted computer and SQL Server Service account. SQL Server Service Account may be trying to communicate via RC4 encryption mechanism with SQL Server Computer, however SQL Server Computer is set to accept only AES 128/ SES 256 encryption mechanism.
SQL Server Computer: msDS-SupportedEncryptionTypes -> 24 (AES128/AES256)
SQL Server Service Account: msDS-SupportedEncryptionTypes -> Not Set
Solution to resolve the issue is to correct the attribute msDS-SupportedEncryptionTypes mismatch issue for both SQL Server Server computer account (YPSQL1)) and SQL Server Service account (SQLSvc)
Made changes to SQL Server Service account “SQLSvc” to use AES 128/ AES 256 Encryption types.
Now both SQL Server Computer object and SQL Server Service account object matches the Supported Encryption Types.
SQL Server Computer (YPSQL1): msDS-SupportedEncryptionTypes -> 24 (AES128/AES256)
SQL Server Service Account (SQLSvc): msDS-SupportedEncryptionTypes -> 24 (AES128/AES256)
It may take some time for the above changes to replicate based on your Active Directory replication process. You could try to do GPUPDATE /FORCE or wait for the replication to complete.
Then try to connect SQL Server instance YPSQL1 from the remote client YPSQL2. It should connect successfully now.
Reference articles: Decrypting the Selection of Supported Kerberos Encryption Types – Microsoft Community Hub
Read More
Notifications about shutdown
Azure notifications about virtual machine shutdown and update buttons do not come, although the virtual machine is shut down and there are no problems with mail. I thought that letters are somehow blocked or go to spam via Exchange server, but there are no such letters there at all. 3 days ago everything worked fine. Can you help with the problem?
Azure notifications about virtual machine shutdown and update buttons do not come, although the virtual machine is shut down and there are no problems with mail. I thought that letters are somehow blocked or go to spam via Exchange server, but there are no such letters there at all. 3 days ago everything worked fine. Can you help with the problem? Read More
Issue With Pasting on Filtered Rows in a Excel Table : MAC
I have this issue, where, if I copy a cell, and paste on the filtered rows, the paste happens on all the rows and not only the selected row. This happens specifically when the range is in a Table.
Detailed Video – https://app.vidcast.io/share/c164a6c7-ecd9-4667-8d76-008a5cb910f3
Can anyone help me with this?
I have this issue, where, if I copy a cell, and paste on the filtered rows, the paste happens on all the rows and not only the selected row. This happens specifically when the range is in a Table. Detailed Video – https://app.vidcast.io/share/c164a6c7-ecd9-4667-8d76-008a5cb910f3 Can anyone help me with this? Read More
腾龙公司电话_17300435119(微同)
基本概念:前身是 Windows Azure,现在更名为 Microsoft Azure。它是微软 “软件和服务” 技术的名称,也是微软 Cloud OS 解决方案与 “devices + services” 战略的核心组成部分。其主要目标是为开发者提供一个平台,帮助开发可运行在云服务器、数据中心、Web 和 PC 上的应用程序,让开发者能够利用微软全球数据中心的储存、计算能力和网络基础服务。服务模式2:I a S(基础设施即服务):提供基础的计算资源,如虚拟机、虚拟网络、存储等。用户可以根据自己的需求选择不同配置的虚拟机,并且可以灵活地进行扩展和收缩。例如,企业可以在 Azure 上快速创建虚拟机来部署自己的应用程序,而无需购买和维护物理服务器。PaaS(平台即服务):为开发者提供了一个完整的平台,包括操作系统、中间件、数据库等,让开发者可以专注于应用程序的开发,而无需关心底层的基础设施管理。比如,Azure 的 App Service 可以让开发者轻松地部署和运行 Web 应用程序,支持多种编程语言和框架。S a a S(软件即服务):提供各种现成的软件应用,用户可以通过网络直接使用,无需安装和维护软件。例如,Azure 的 Dynamics 365 是一套基于云的企业资源规划(ERP)和客户关系管理(C RM)软件,企业可以根据自己的需求订阅和使用。主要功能和服务2:计算服务:包括虚拟机、容器和无服务器计算等。虚拟机提供多种不同大小的虚机类型,操作系统可以是 Windows、Linux 等。容器服务可以帮助用户更高效地部署和管理应用程序。无服务器计算则让用户无需关心服务器的管理,只需关注代码的编写和业务逻辑。存储服务:提供多种存储选项,如块存储、文件存储、对象存储等。用户可以根据数据的类型和访问需求选择合适的存储方式。Azure 的存储服务具有高可用性、可扩展性和安全性,能够保证数据的可靠存储。网络服务:帮助用户建立与本地环境的专用网络连接,实现混合云部署。还可以高效配置和控制传入和传出 Azure 的流量,优化应用程序的性能和可伸缩性。例如,通过 Site-to-Site VPN 可以将企业的内网与 Azure 云服务连接起来,实现数据的安全传输。人工智能服务:包含机器学习和预生成的认知服务。机器学习服务允许用户使用自己的数据进行模型训练,从而实现预测分析、图像识别、语音识别等功能。认知服务则提供了一些预先训练好的模型,如文本翻译、情感分析等,用户可以直接调用这些服务来快速实现相关功能。物联网服务:支持设备和传感器的集成,用户可以使用 Io T 中心管理这些设备,并创建功能完整的仪表盘和应用程序来监视和控制设备。例如,在工业物联网场景中,企业可以将工厂中的设备连接到 Azure,实时收集设备数据,进行分析和预测性维护。集成服务:通过逻辑应用和服务总线连接应用程序和服务,允许工作流协调业务流程,实现不同系统之间的集成和数据交换。安全服务:安全性贯穿于 Azure 的各个方面,包括身份验证、访问控制、数据加密等。Azure 的安全中心可以帮助用户预防、检测和响应安全威胁,提高云资源的安全性2。优势:全球覆盖:Azure 在全球 54 个地区和 140 个国家提供服务,具有广泛的全球覆盖能力,能够满足企业的国际化业务需求,帮助客户拓展海外市场2。高可靠性和可用性:微软拥有强大的数据中心基础设施和技术团队,能够保证 Azure 服务的高可靠性和可用性。数据中心采用冗余设计,具备备份电源、网络设备等,确保服务的不间断运行。灵活性和可扩展性:用户可以根据自己的业务需求随时调整云资源的使用量,灵活地增加或减少虚拟机、存储容量等资源,避免了资源的浪费和过度投资。与微软产品的集成性:对于已经使用微软产品的企业来说,Azure 与微软的其他产品如 Windows Server、SQL Server、Active Directory 等具有良好的集成性,可以实现无缝的衔接和管理。强大的技术支持:微软提供专业的技术支持团队,为用户提供 7 x 24 小时的技术支持服务,帮助用户解决在使用 Azure 过程中遇到的问题。应用场景:企业应用部署:企业可以将自己的业务应用程序部署到 Azure 上,如企业资源规划系统、客户关系管理系统等,提高应用程序的可用性和可访问性,降低企业的 IT 成本。大数据分析:利用 Azure 的大数据服务和机器学习功能,企业可以对大量的数据进行分析和处理,获取有价值的信息,为企业的决策提供支持3。人工智能和机器学习:开发者可以在 Azure 上进行人工智能和机器学习的研发和实验,使用 Azure 提供的计算资源和工具,快速构建和训练模型3。物联网应用:如智能家居、智能交通、工业物联网等领域,Azure 的物联网服务可以帮助企业实现设备的连接和管理,收集和分析设备数据,提高运营效率和产品质量2。游戏开发和运营:游戏开发者可以使用 Azure 的计算和存储资源来运行游戏服务器,利用 Azure 的全球网络分发游戏内容,提高游戏的性能和玩家体验。
Azure 是微软的公有云服务平台,具有多方面的特点和功能,以下是关于 Azure 的详细介绍: 基本概念:前身是 Windows Azure,现在更名为 Microsoft Azure。它是微软 “软件和服务” 技术的名称,也是微软 Cloud OS 解决方案与 “devices + services” 战略的核心组成部分。其主要目标是为开发者提供一个平台,帮助开发可运行在云服务器、数据中心、Web 和 PC 上的应用程序,让开发者能够利用微软全球数据中心的储存、计算能力和网络基础服务。服务模式2:I a S(基础设施即服务):提供基础的计算资源,如虚拟机、虚拟网络、存储等。用户可以根据自己的需求选择不同配置的虚拟机,并且可以灵活地进行扩展和收缩。例如,企业可以在 Azure 上快速创建虚拟机来部署自己的应用程序,而无需购买和维护物理服务器。PaaS(平台即服务):为开发者提供了一个完整的平台,包括操作系统、中间件、数据库等,让开发者可以专注于应用程序的开发,而无需关心底层的基础设施管理。比如,Azure 的 App Service 可以让开发者轻松地部署和运行 Web 应用程序,支持多种编程语言和框架。S a a S(软件即服务):提供各种现成的软件应用,用户可以通过网络直接使用,无需安装和维护软件。例如,Azure 的 Dynamics 365 是一套基于云的企业资源规划(ERP)和客户关系管理(C RM)软件,企业可以根据自己的需求订阅和使用。主要功能和服务2:计算服务:包括虚拟机、容器和无服务器计算等。虚拟机提供多种不同大小的虚机类型,操作系统可以是 Windows、Linux 等。容器服务可以帮助用户更高效地部署和管理应用程序。无服务器计算则让用户无需关心服务器的管理,只需关注代码的编写和业务逻辑。存储服务:提供多种存储选项,如块存储、文件存储、对象存储等。用户可以根据数据的类型和访问需求选择合适的存储方式。Azure 的存储服务具有高可用性、可扩展性和安全性,能够保证数据的可靠存储。网络服务:帮助用户建立与本地环境的专用网络连接,实现混合云部署。还可以高效配置和控制传入和传出 Azure 的流量,优化应用程序的性能和可伸缩性。例如,通过 Site-to-Site VPN 可以将企业的内网与 Azure 云服务连接起来,实现数据的安全传输。人工智能服务:包含机器学习和预生成的认知服务。机器学习服务允许用户使用自己的数据进行模型训练,从而实现预测分析、图像识别、语音识别等功能。认知服务则提供了一些预先训练好的模型,如文本翻译、情感分析等,用户可以直接调用这些服务来快速实现相关功能。物联网服务:支持设备和传感器的集成,用户可以使用 Io T 中心管理这些设备,并创建功能完整的仪表盘和应用程序来监视和控制设备。例如,在工业物联网场景中,企业可以将工厂中的设备连接到 Azure,实时收集设备数据,进行分析和预测性维护。集成服务:通过逻辑应用和服务总线连接应用程序和服务,允许工作流协调业务流程,实现不同系统之间的集成和数据交换。安全服务:安全性贯穿于 Azure 的各个方面,包括身份验证、访问控制、数据加密等。Azure 的安全中心可以帮助用户预防、检测和响应安全威胁,提高云资源的安全性2。优势:全球覆盖:Azure 在全球 54 个地区和 140 个国家提供服务,具有广泛的全球覆盖能力,能够满足企业的国际化业务需求,帮助客户拓展海外市场2。高可靠性和可用性:微软拥有强大的数据中心基础设施和技术团队,能够保证 Azure 服务的高可靠性和可用性。数据中心采用冗余设计,具备备份电源、网络设备等,确保服务的不间断运行。灵活性和可扩展性:用户可以根据自己的业务需求随时调整云资源的使用量,灵活地增加或减少虚拟机、存储容量等资源,避免了资源的浪费和过度投资。与微软产品的集成性:对于已经使用微软产品的企业来说,Azure 与微软的其他产品如 Windows Server、SQL Server、Active Directory 等具有良好的集成性,可以实现无缝的衔接和管理。强大的技术支持:微软提供专业的技术支持团队,为用户提供 7 x 24 小时的技术支持服务,帮助用户解决在使用 Azure 过程中遇到的问题。应用场景:企业应用部署:企业可以将自己的业务应用程序部署到 Azure 上,如企业资源规划系统、客户关系管理系统等,提高应用程序的可用性和可访问性,降低企业的 IT 成本。大数据分析:利用 Azure 的大数据服务和机器学习功能,企业可以对大量的数据进行分析和处理,获取有价值的信息,为企业的决策提供支持3。人工智能和机器学习:开发者可以在 Azure 上进行人工智能和机器学习的研发和实验,使用 Azure 提供的计算资源和工具,快速构建和训练模型3。物联网应用:如智能家居、智能交通、工业物联网等领域,Azure 的物联网服务可以帮助企业实现设备的连接和管理,收集和分析设备数据,提高运营效率和产品质量2。游戏开发和运营:游戏开发者可以使用 Azure 的计算和存储资源来运行游戏服务器,利用 Azure 的全球网络分发游戏内容,提高游戏的性能和玩家体验。 Read More
The chat history is gone.
Hello,
On desktop Copilot changed from a white UI with options for balance or creative mode to a blue background with no way to choose that. i lost all my chats i think. they are gone. i do not think i see it saving new chats either.
is there a way to get it back?
Hello,On desktop Copilot changed from a white UI with options for balance or creative mode to a blue background with no way to choose that. i lost all my chats i think. they are gone. i do not think i see it saving new chats either. is there a way to get it back? Read More
Facing an issue while forwarding the Email to Salesforce Email Services
I am trying to forward an email from Outlook to a Salesforce Email address. It works fine when forwarding to an personal email address, but it does not seem to be work when forward to Salesforce. I am using redirect rules to forward the email.
Below is the Salesforce email for reference:
email address removed for privacy reasons
I am trying to forward an email from Outlook to a Salesforce Email address. It works fine when forwarding to an personal email address, but it does not seem to be work when forward to Salesforce. I am using redirect rules to forward the email. Below is the Salesforce email for reference:email address removed for privacy reasons Read More
Need help in understanding delegated permissions for onlinemeetingtranscript.read.all
Hi everyone,
I am building a custom team app which is basically a meeting bot which retrieves the transcripts of the meeting when the meeting ends. I followed this Microsoft sample
https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-transcription/nodejs
There are some permissions(OnlineMeetingTranscript.Read.All) needed to use the users/{user_id}/onlinemeetings/{meeting_id}/transcripts api.
These permissions can be delegated level or application level as per the documentation.
https://learn.microsoft.com/en-us/graph/api/onlinemeeting-list-transcripts?view=graph-rest-beta&tabs=python
The API works fine with application level permissions.
But when I try to make it delegated, the api returns a 403 forbidden error with
Missing role permissions on the request. API requires one of ‘OnlineMeetingTranscript.Read.All, OnlineMeetingTranscript.Read.Chat’. Roles on the request ”. Resource specific consent grants on the request ‘OnlineMeeting.ReadBasic.Chat’.
I wanted to understand if a delegated level of permission for my use case (meeting transcription bot) is feasible or not.
Is it a hard requirement that the permission level should be application level for the meeting transcription bot? If yes, why?
Hi everyone,I am building a custom team app which is basically a meeting bot which retrieves the transcripts of the meeting when the meeting ends. I followed this Microsoft samplehttps://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-transcription/nodejs There are some permissions(OnlineMeetingTranscript.Read.All) needed to use the users/{user_id}/onlinemeetings/{meeting_id}/transcripts api.These permissions can be delegated level or application level as per the documentation.https://learn.microsoft.com/en-us/graph/api/onlinemeeting-list-transcripts?view=graph-rest-beta&tabs=pythonThe API works fine with application level permissions.But when I try to make it delegated, the api returns a 403 forbidden error with Missing role permissions on the request. API requires one of ‘OnlineMeetingTranscript.Read.All, OnlineMeetingTranscript.Read.Chat’. Roles on the request ”. Resource specific consent grants on the request ‘OnlineMeeting.ReadBasic.Chat’.I wanted to understand if a delegated level of permission for my use case (meeting transcription bot) is feasible or not. Is it a hard requirement that the permission level should be application level for the meeting transcription bot? If yes, why? Read More
How to periodically change Simulink Output file name?
Hello,
I am trying to periodically output data from Simulink using the "To File" block, and I would like to use the current date and time as the name for each output file. Currently, I am trying to periodically call a function which determines the real-world time, converts that to a string, and uses the set_param command to change the output file name accordingly.
function [Y, M, D, H, MN, S] = fcn()
coder.extrinsic(‘now’);
coder.extrinsic(‘datevec’);
coder.extrinsic(‘sprintf’);
coder.extrinsic(‘set_param’);
[Y, M, D, H, MN, S] = datevec(now,’HH:MM:SS.FFF’);
date_time=[Y M D H MN S];
fname = sprintf(‘OutputFile_%04d_%02d_%02d_%02d_%02d_%02f.mat’, date_time);
set_param(‘untitled/To File’,’Filename’,fname);
end
Unfortunately, I am receiving the error message "Cannot change parameter ‘File name: (Filename)’ of ‘untitled/To File’ while simulation is running".
I have only been able to successfully use the set_param command while Simulink is not running, but I need to change my output file name during simulation. Is this possible? Is there a better way to approach this problem?
Thank you,
DrewHello,
I am trying to periodically output data from Simulink using the "To File" block, and I would like to use the current date and time as the name for each output file. Currently, I am trying to periodically call a function which determines the real-world time, converts that to a string, and uses the set_param command to change the output file name accordingly.
function [Y, M, D, H, MN, S] = fcn()
coder.extrinsic(‘now’);
coder.extrinsic(‘datevec’);
coder.extrinsic(‘sprintf’);
coder.extrinsic(‘set_param’);
[Y, M, D, H, MN, S] = datevec(now,’HH:MM:SS.FFF’);
date_time=[Y M D H MN S];
fname = sprintf(‘OutputFile_%04d_%02d_%02d_%02d_%02d_%02f.mat’, date_time);
set_param(‘untitled/To File’,’Filename’,fname);
end
Unfortunately, I am receiving the error message "Cannot change parameter ‘File name: (Filename)’ of ‘untitled/To File’ while simulation is running".
I have only been able to successfully use the set_param command while Simulink is not running, but I need to change my output file name during simulation. Is this possible? Is there a better way to approach this problem?
Thank you,
Drew Hello,
I am trying to periodically output data from Simulink using the "To File" block, and I would like to use the current date and time as the name for each output file. Currently, I am trying to periodically call a function which determines the real-world time, converts that to a string, and uses the set_param command to change the output file name accordingly.
function [Y, M, D, H, MN, S] = fcn()
coder.extrinsic(‘now’);
coder.extrinsic(‘datevec’);
coder.extrinsic(‘sprintf’);
coder.extrinsic(‘set_param’);
[Y, M, D, H, MN, S] = datevec(now,’HH:MM:SS.FFF’);
date_time=[Y M D H MN S];
fname = sprintf(‘OutputFile_%04d_%02d_%02d_%02d_%02d_%02f.mat’, date_time);
set_param(‘untitled/To File’,’Filename’,fname);
end
Unfortunately, I am receiving the error message "Cannot change parameter ‘File name: (Filename)’ of ‘untitled/To File’ while simulation is running".
I have only been able to successfully use the set_param command while Simulink is not running, but I need to change my output file name during simulation. Is this possible? Is there a better way to approach this problem?
Thank you,
Drew periodically change simulink output file name MATLAB Answers — New Questions
Issue with fixed-point FFT using the dsp.FFT function
Hello everyone, I’m new to MATLAB and MATLAB coder. I’m trying to self-generate a code for a STM32F446RE microcontroller with MATLAB coder to use it on STM32CubeIDE. The code that I’m trying to generate is an FFT of fixed-point data. I’m using the dsp.FFT function with a 16-bit world length because it supports fixed-point.
This is my MATLAB script
s = readmatrix("FFT_data.txt");
c = fi(s,1,16);
q = fourier(c);
This is my MATLAB function
function [Y] = fourier(X)
ft = dsp.FFT("FFTLengthSource","Property","Normalize",true,"FFTLength",1024);
Y = abs(ft(X));
end
The program is working on my Micro, but it’s a little bit too slow. I think the problem is that the C code generated by MATLAB uses 64-bit Multiword functions despite the data being 16 bits long in MATLAB.
static void c_MWDSPCG_FFT_DblLen_Nrm_YCs16n(cint16_T y[], int nChans, int nRows,
const short twiddleTable[],
int twiddleStep)
{
int64m_T r;
int64m_T r1;
int64m_T r10;
int64m_T r11;
int64m_T r12;
int64m_T r13;
int64m_T r14;
int64m_T r15;
int64m_T r16;
int64m_T r2;
int64m_T r3;
int64m_T r4;
int64m_T r5;
int64m_T r6;
int64m_T r7;
int64m_T r8;
int64m_T r9;
int N2;
int N4;
int i;
int ix;
int tempOut0Re_tmp;
int yIdx;
short tempOut0Im;
short tempOut0Re;
/* In-place "double-length" data recovery
Table-based mem-optimized twiddle computation
Used to recover linear-ordered length-N point complex FFT result
from a linear-ordered complex length-N/2 point FFT, performed
on N interleaved real values.
*/
N2 = nRows >> 1;
N4 = N2 >> 1;
yIdx = nRows * (nChans – 1);
if (nRows > 2) {
tempOut0Re_tmp = N4 + yIdx;
tempOut0Re = (short)(y[tempOut0Re_tmp].re >> 1);
tempOut0Im = (short)(y[tempOut0Re_tmp].im >> 1);
i = (N2 + N4) + yIdx;
y[i].re = tempOut0Re;
y[i].im = tempOut0Im;
y[tempOut0Re_tmp].re = tempOut0Re;
y[tempOut0Re_tmp].im = (short)-tempOut0Im;
}
if (nRows > 1) {
sLong2MultiWord(y[yIdx].re << 15, (unsigned int *)&r.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r.chunks[0U], 21U,
(unsigned int *)&r2.chunks[0U]);
sLong2MultiWord(y[yIdx].im << 15, (unsigned int *)&r1.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r1.chunks[0U], 21U,
(unsigned int *)&r.chunks[0U]);
MultiWordSub((unsigned int *)&r2.chunks[0U], (unsigned int *)&r.chunks[0U],
(unsigned int *)&r4.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r4.chunks[0U], 21U,
(unsigned int *)&r5.chunks[0U]);
sMultiWordShr((unsigned int *)&r5.chunks[0U], 1U,
(unsigned int *)&r6.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r6.chunks[0U], 21U,
(unsigned int *)&r7.chunks[0U]);
sMultiWordShr((unsigned int *)&r7.chunks[0U], 15U,
(unsigned int *)&r8.chunks[0U]);
i = N2 + yIdx;
y[i].re = (short)MultiWord2sLong((unsigned int *)&r8.chunks[0U]);
y[i].im = 0;
}
sLong2MultiWord(y[yIdx].re << 15, (unsigned int *)&r1.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r1.chunks[0U], 21U,
(unsigned int *)&r.chunks[0U]);
sLong2MultiWord(y[yIdx].im << 15, (unsigned int *)&r3.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r3.chunks[0U], 21U,
(unsigned int *)&r1.chunks[0U]);
MultiWordAdd((unsigned int *)&r.chunks[0U], (unsigned int *)&r1.chunks[0U],
(unsigned int *)&r2.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r2.chunks[0U], 21U,
(unsigned int *)&r4.chunks[0U]);
sMultiWordShr((unsigned int *)&r4.chunks[0U], 1U,
(unsigned int *)&r5.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r5.chunks[0U], 21U,
(unsigned int *)&r6.chunks[0U]);
sMultiWordShr((unsigned int *)&r6.chunks[0U], 15U,
(unsigned int *)&r7.chunks[0U]);
y[yIdx].re = (short)MultiWord2sLong((unsigned int *)&r7.chunks[0U]);
y[yIdx].im = 0;
tempOut0Re_tmp = twiddleStep;
for (ix = 1; ix < N4; ix++) {
int i1;
int i2;
int i3;
int i4;
int i5;
int i6;
short cTemp_im;
short cTemp_re;
i = ix + yIdx;
i1 = y[i].re << 15;
sLong2MultiWord(i1, (unsigned int *)&r3.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r3.chunks[0U], 21U,
(unsigned int *)&r1.chunks[0U]);
i2 = (N2 – ix) + yIdx;
i3 = y[i2].re << 15;
sLong2MultiWord(i3, (unsigned int *)&r9.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r9.chunks[0U], 21U,
(unsigned int *)&r3.chunks[0U]);
MultiWordAdd((unsigned int *)&r1.chunks[0U], (unsigned int *)&r3.chunks[0U],
(unsigned int *)&r.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r.chunks[0U], 21U,
(unsigned int *)&r2.chunks[0U]);
sMultiWordShr((unsigned int *)&r2.chunks[0U], 2U,
(unsigned int *)&r4.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r4.chunks[0U], 21U,
(unsigned int *)&r5.chunks[0U]);
sMultiWordShr((unsigned int *)&r5.chunks[0U], 15U,
(unsigned int *)&r6.chunks[0U]);
tempOut0Re = (short)MultiWord2sLong((unsigned int *)&r6.chunks[0U]);
i4 = y[i].im << 15;
sLong2MultiWord(i4, (unsigned int *)&r9.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r9.chunks[0U], 21U,
(unsigned int *)&r3.chunks[0U]);
i5 = y[i2].im << 15;
sLong2MultiWord(i5, (unsigned int *)&r10.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r10.chunks[0U], 21U,
(unsigned int *)&r9.chunks[0U]);
MultiWordSub((unsigned int *)&r3.chunks[0U], (unsigned int *)&r9.chunks[0U],
(unsigned int *)&r1.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r1.chunks[0U], 21U,
(unsigned int *)&r.chunks[0U]);
sMultiWordShr((unsigned int *)&r.chunks[0U], 2U,
(unsigned int *)&r2.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r2.chunks[0U], 21U,
(unsigned int *)&r4.chunks[0U]);
sMultiWordShr((unsigned int *)&r4.chunks[0U], 15U,
(unsigned int *)&r5.chunks[0U]);
tempOut0Im = (short)MultiWord2sLong((unsigned int *)&r5.chunks[0U]);
sLong2MultiWord(i4, (unsigned int *)&r10.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r10.chunks[0U], 21U,
(unsigned int *)&r9.chunks[0U]);
sLong2MultiWord(i5, (unsigned int *)&r11.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r11.chunks[0U], 21U,
(unsigned int *)&r10.chunks[0U]);
MultiWordAdd((unsigned int *)&r9.chunks[0U],
(unsigned int *)&r10.chunks[0U],
(unsigned int *)&r3.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r3.chunks[0U], 21U,
(unsigned int *)&r1.chunks[0U]);
sMultiWordShr((unsigned int *)&r1.chunks[0U], 2U,
(unsigned int *)&r.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r.chunks[0U], 21U,
(unsigned int *)&r2.chunks[0U]);
sMultiWordShr((unsigned int *)&r2.chunks[0U], 15U,
(unsigned int *)&r4.chunks[0U]);
y[i].re = (short)MultiWord2sLong((unsigned int *)&r4.chunks[0U]);
sLong2MultiWord(i3, (unsigned int *)&r11.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r11.chunks[0U], 21U,
(unsigned int *)&r10.chunks[0U]);
sLong2MultiWord(i1, (unsigned int *)&r12.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r12.chunks[0U], 21U,
(unsigned int *)&r11.chunks[0U]);
MultiWordSub((unsigned int *)&r10.chunks[0U],
(unsigned int *)&r11.chunks[0U],
(unsigned int *)&r9.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r9.chunks[0U], 21U,
(unsigned int *)&r3.chunks[0U]);
sMultiWordShr((unsigned int *)&r3.chunks[0U], 2U,
(unsigned int *)&r1.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r1.chunks[0U], 21U,
(unsigned int *)&r.chunks[0U]);
sMultiWordShr((unsigned int *)&r.chunks[0U], 15U,
(unsigned int *)&r2.chunks[0U]);
y[i].im = (short)MultiWord2sLong((unsigned int *)&r2.chunks[0U]);
i1 = twiddleTable[tempOut0Re_tmp + N4 * twiddleStep];
i3 = y[i].re;
sLong2MultiWord(i1 * i3, (unsigned int *)&r11.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r11.chunks[0U], 22U,
(unsigned int *)&r10.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r10.chunks[0U], 21U,
(unsigned int *)&r9.chunks[0U]);
i4 = y[i].im;
i5 = twiddleTable[tempOut0Re_tmp + N2 * twiddleStep];
sLong2MultiWord(i5 * i4, (unsigned int *)&r12.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r12.chunks[0U], 22U,
(unsigned int *)&r11.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r11.chunks[0U], 21U,
(unsigned int *)&r10.chunks[0U]);
MultiWordSub((unsigned int *)&r9.chunks[0U],
(unsigned int *)&r10.chunks[0U],
(unsigned int *)&r3.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r3.chunks[0U], 21U,
(unsigned int *)&r1.chunks[0U]);
sMultiWordShr((unsigned int *)&r1.chunks[0U], 15U,
(unsigned int *)&r.chunks[0U]);
cTemp_re = (short)MultiWord2sLong((unsigned int *)&r.chunks[0U]);
sLong2MultiWord(i1 * i4, (unsigned int *)&r12.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r12.chunks[0U], 22U,
(unsigned int *)&r11.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r11.chunks[0U], 21U,
(unsigned int *)&r10.chunks[0U]);
sLong2MultiWord(i5 * i3, (unsigned int *)&r13.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r13.chunks[0U], 22U,
(unsigned int *)&r12.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r12.chunks[0U], 21U,
(unsigned int *)&r11.chunks[0U]);
MultiWordAdd((unsigned int *)&r10.chunks[0U],
(unsigned int *)&r11.chunks[0U],
(unsigned int *)&r9.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r9.chunks[0U], 21U,
(unsigned int *)&r3.chunks[0U]);
sMultiWordShr((unsigned int *)&r3.chunks[0U], 15U,
(unsigned int *)&r1.chunks[0U]);
cTemp_im = (short)MultiWord2sLong((unsigned int *)&r1.chunks[0U]);
i1 = tempOut0Re << 15;
sLong2MultiWord(i1, (unsigned int *)&r12.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r12.chunks[0U], 21U,
(unsigned int *)&r11.chunks[0U]);
i3 = cTemp_re << 15;
sLong2MultiWord(i3, (unsigned int *)&r13.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r13.chunks[0U], 21U,
(unsigned int *)&r12.chunks[0U]);
MultiWordAdd((unsigned int *)&r11.chunks[0U],
(unsigned int *)&r12.chunks[0U],
(unsigned int *)&r10.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r10.chunks[0U], 21U,
(unsigned int *)&r9.chunks[0U]);
sMultiWordShr((unsigned int *)&r9.chunks[0U], 15U,
(unsigned int *)&r3.chunks[0U]);
y[i].re = (short)MultiWord2sLong((unsigned int *)&r3.chunks[0U]);
i4 = tempOut0Im << 15;
sLong2MultiWord(i4, (unsigned int *)&r13.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r13.chunks[0U], 21U,
(unsigned int *)&r12.chunks[0U]);
i5 = cTemp_im << 15;
sLong2MultiWord(i5, (unsigned int *)&r14.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r14.chunks[0U], 21U,
(unsigned int *)&r13.chunks[0U]);
MultiWordAdd((unsigned int *)&r12.chunks[0U],
(unsigned int *)&r13.chunks[0U],
(unsigned int *)&r11.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r11.chunks[0U], 21U,
(unsigned int *)&r10.chunks[0U]);
sMultiWordShr((unsigned int *)&r10.chunks[0U], 15U,
(unsigned int *)&r9.chunks[0U]);
y[i].im = (short)MultiWord2sLong((unsigned int *)&r9.chunks[0U]);
i6 = (nRows – ix) + yIdx;
y[i6].re = y[i].re;
y[i6].im = (short)-y[i].im;
sLong2MultiWord(i1, (unsigned int *)&r14.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r14.chunks[0U], 21U,
(unsigned int *)&r13.chunks[0U]);
sLong2MultiWord(i3, (unsigned int *)&r15.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r15.chunks[0U], 21U,
(unsigned int *)&r14.chunks[0U]);
MultiWordSub((unsigned int *)&r13.chunks[0U],
(unsigned int *)&r14.chunks[0U],
(unsigned int *)&r12.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r12.chunks[0U], 21U,
(unsigned int *)&r11.chunks[0U]);
sMultiWordShr((unsigned int *)&r11.chunks[0U], 15U,
(unsigned int *)&r10.chunks[0U]);
i = (N2 + ix) + yIdx;
y[i].re = (short)MultiWord2sLong((unsigned int *)&r10.chunks[0U]);
sLong2MultiWord(i4, (unsigned int *)&r15.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r15.chunks[0U], 21U,
(unsigned int *)&r14.chunks[0U]);
sLong2MultiWord(i5, (unsigned int *)&r16.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r16.chunks[0U], 21U,
(unsigned int *)&r15.chunks[0U]);
MultiWordSub((unsigned int *)&r14.chunks[0U],
(unsigned int *)&r15.chunks[0U],
(unsigned int *)&r13.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r13.chunks[0U], 21U,
(unsigned int *)&r12.chunks[0U]);
sMultiWordShr((unsigned int *)&r12.chunks[0U], 15U,
(unsigned int *)&r11.chunks[0U]);
y[i].im = (short)MultiWord2sLong((unsigned int *)&r11.chunks[0U]);
y[i2].re = y[i].re;
y[i2].im = (short)-y[i].im;
tempOut0Re_tmp += twiddleStep;
}
}
Is there a way to self-generate code that operates on 16-bit data and remove the Multiword functions?Hello everyone, I’m new to MATLAB and MATLAB coder. I’m trying to self-generate a code for a STM32F446RE microcontroller with MATLAB coder to use it on STM32CubeIDE. The code that I’m trying to generate is an FFT of fixed-point data. I’m using the dsp.FFT function with a 16-bit world length because it supports fixed-point.
This is my MATLAB script
s = readmatrix("FFT_data.txt");
c = fi(s,1,16);
q = fourier(c);
This is my MATLAB function
function [Y] = fourier(X)
ft = dsp.FFT("FFTLengthSource","Property","Normalize",true,"FFTLength",1024);
Y = abs(ft(X));
end
The program is working on my Micro, but it’s a little bit too slow. I think the problem is that the C code generated by MATLAB uses 64-bit Multiword functions despite the data being 16 bits long in MATLAB.
static void c_MWDSPCG_FFT_DblLen_Nrm_YCs16n(cint16_T y[], int nChans, int nRows,
const short twiddleTable[],
int twiddleStep)
{
int64m_T r;
int64m_T r1;
int64m_T r10;
int64m_T r11;
int64m_T r12;
int64m_T r13;
int64m_T r14;
int64m_T r15;
int64m_T r16;
int64m_T r2;
int64m_T r3;
int64m_T r4;
int64m_T r5;
int64m_T r6;
int64m_T r7;
int64m_T r8;
int64m_T r9;
int N2;
int N4;
int i;
int ix;
int tempOut0Re_tmp;
int yIdx;
short tempOut0Im;
short tempOut0Re;
/* In-place "double-length" data recovery
Table-based mem-optimized twiddle computation
Used to recover linear-ordered length-N point complex FFT result
from a linear-ordered complex length-N/2 point FFT, performed
on N interleaved real values.
*/
N2 = nRows >> 1;
N4 = N2 >> 1;
yIdx = nRows * (nChans – 1);
if (nRows > 2) {
tempOut0Re_tmp = N4 + yIdx;
tempOut0Re = (short)(y[tempOut0Re_tmp].re >> 1);
tempOut0Im = (short)(y[tempOut0Re_tmp].im >> 1);
i = (N2 + N4) + yIdx;
y[i].re = tempOut0Re;
y[i].im = tempOut0Im;
y[tempOut0Re_tmp].re = tempOut0Re;
y[tempOut0Re_tmp].im = (short)-tempOut0Im;
}
if (nRows > 1) {
sLong2MultiWord(y[yIdx].re << 15, (unsigned int *)&r.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r.chunks[0U], 21U,
(unsigned int *)&r2.chunks[0U]);
sLong2MultiWord(y[yIdx].im << 15, (unsigned int *)&r1.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r1.chunks[0U], 21U,
(unsigned int *)&r.chunks[0U]);
MultiWordSub((unsigned int *)&r2.chunks[0U], (unsigned int *)&r.chunks[0U],
(unsigned int *)&r4.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r4.chunks[0U], 21U,
(unsigned int *)&r5.chunks[0U]);
sMultiWordShr((unsigned int *)&r5.chunks[0U], 1U,
(unsigned int *)&r6.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r6.chunks[0U], 21U,
(unsigned int *)&r7.chunks[0U]);
sMultiWordShr((unsigned int *)&r7.chunks[0U], 15U,
(unsigned int *)&r8.chunks[0U]);
i = N2 + yIdx;
y[i].re = (short)MultiWord2sLong((unsigned int *)&r8.chunks[0U]);
y[i].im = 0;
}
sLong2MultiWord(y[yIdx].re << 15, (unsigned int *)&r1.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r1.chunks[0U], 21U,
(unsigned int *)&r.chunks[0U]);
sLong2MultiWord(y[yIdx].im << 15, (unsigned int *)&r3.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r3.chunks[0U], 21U,
(unsigned int *)&r1.chunks[0U]);
MultiWordAdd((unsigned int *)&r.chunks[0U], (unsigned int *)&r1.chunks[0U],
(unsigned int *)&r2.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r2.chunks[0U], 21U,
(unsigned int *)&r4.chunks[0U]);
sMultiWordShr((unsigned int *)&r4.chunks[0U], 1U,
(unsigned int *)&r5.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r5.chunks[0U], 21U,
(unsigned int *)&r6.chunks[0U]);
sMultiWordShr((unsigned int *)&r6.chunks[0U], 15U,
(unsigned int *)&r7.chunks[0U]);
y[yIdx].re = (short)MultiWord2sLong((unsigned int *)&r7.chunks[0U]);
y[yIdx].im = 0;
tempOut0Re_tmp = twiddleStep;
for (ix = 1; ix < N4; ix++) {
int i1;
int i2;
int i3;
int i4;
int i5;
int i6;
short cTemp_im;
short cTemp_re;
i = ix + yIdx;
i1 = y[i].re << 15;
sLong2MultiWord(i1, (unsigned int *)&r3.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r3.chunks[0U], 21U,
(unsigned int *)&r1.chunks[0U]);
i2 = (N2 – ix) + yIdx;
i3 = y[i2].re << 15;
sLong2MultiWord(i3, (unsigned int *)&r9.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r9.chunks[0U], 21U,
(unsigned int *)&r3.chunks[0U]);
MultiWordAdd((unsigned int *)&r1.chunks[0U], (unsigned int *)&r3.chunks[0U],
(unsigned int *)&r.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r.chunks[0U], 21U,
(unsigned int *)&r2.chunks[0U]);
sMultiWordShr((unsigned int *)&r2.chunks[0U], 2U,
(unsigned int *)&r4.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r4.chunks[0U], 21U,
(unsigned int *)&r5.chunks[0U]);
sMultiWordShr((unsigned int *)&r5.chunks[0U], 15U,
(unsigned int *)&r6.chunks[0U]);
tempOut0Re = (short)MultiWord2sLong((unsigned int *)&r6.chunks[0U]);
i4 = y[i].im << 15;
sLong2MultiWord(i4, (unsigned int *)&r9.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r9.chunks[0U], 21U,
(unsigned int *)&r3.chunks[0U]);
i5 = y[i2].im << 15;
sLong2MultiWord(i5, (unsigned int *)&r10.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r10.chunks[0U], 21U,
(unsigned int *)&r9.chunks[0U]);
MultiWordSub((unsigned int *)&r3.chunks[0U], (unsigned int *)&r9.chunks[0U],
(unsigned int *)&r1.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r1.chunks[0U], 21U,
(unsigned int *)&r.chunks[0U]);
sMultiWordShr((unsigned int *)&r.chunks[0U], 2U,
(unsigned int *)&r2.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r2.chunks[0U], 21U,
(unsigned int *)&r4.chunks[0U]);
sMultiWordShr((unsigned int *)&r4.chunks[0U], 15U,
(unsigned int *)&r5.chunks[0U]);
tempOut0Im = (short)MultiWord2sLong((unsigned int *)&r5.chunks[0U]);
sLong2MultiWord(i4, (unsigned int *)&r10.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r10.chunks[0U], 21U,
(unsigned int *)&r9.chunks[0U]);
sLong2MultiWord(i5, (unsigned int *)&r11.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r11.chunks[0U], 21U,
(unsigned int *)&r10.chunks[0U]);
MultiWordAdd((unsigned int *)&r9.chunks[0U],
(unsigned int *)&r10.chunks[0U],
(unsigned int *)&r3.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r3.chunks[0U], 21U,
(unsigned int *)&r1.chunks[0U]);
sMultiWordShr((unsigned int *)&r1.chunks[0U], 2U,
(unsigned int *)&r.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r.chunks[0U], 21U,
(unsigned int *)&r2.chunks[0U]);
sMultiWordShr((unsigned int *)&r2.chunks[0U], 15U,
(unsigned int *)&r4.chunks[0U]);
y[i].re = (short)MultiWord2sLong((unsigned int *)&r4.chunks[0U]);
sLong2MultiWord(i3, (unsigned int *)&r11.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r11.chunks[0U], 21U,
(unsigned int *)&r10.chunks[0U]);
sLong2MultiWord(i1, (unsigned int *)&r12.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r12.chunks[0U], 21U,
(unsigned int *)&r11.chunks[0U]);
MultiWordSub((unsigned int *)&r10.chunks[0U],
(unsigned int *)&r11.chunks[0U],
(unsigned int *)&r9.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r9.chunks[0U], 21U,
(unsigned int *)&r3.chunks[0U]);
sMultiWordShr((unsigned int *)&r3.chunks[0U], 2U,
(unsigned int *)&r1.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r1.chunks[0U], 21U,
(unsigned int *)&r.chunks[0U]);
sMultiWordShr((unsigned int *)&r.chunks[0U], 15U,
(unsigned int *)&r2.chunks[0U]);
y[i].im = (short)MultiWord2sLong((unsigned int *)&r2.chunks[0U]);
i1 = twiddleTable[tempOut0Re_tmp + N4 * twiddleStep];
i3 = y[i].re;
sLong2MultiWord(i1 * i3, (unsigned int *)&r11.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r11.chunks[0U], 22U,
(unsigned int *)&r10.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r10.chunks[0U], 21U,
(unsigned int *)&r9.chunks[0U]);
i4 = y[i].im;
i5 = twiddleTable[tempOut0Re_tmp + N2 * twiddleStep];
sLong2MultiWord(i5 * i4, (unsigned int *)&r12.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r12.chunks[0U], 22U,
(unsigned int *)&r11.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r11.chunks[0U], 21U,
(unsigned int *)&r10.chunks[0U]);
MultiWordSub((unsigned int *)&r9.chunks[0U],
(unsigned int *)&r10.chunks[0U],
(unsigned int *)&r3.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r3.chunks[0U], 21U,
(unsigned int *)&r1.chunks[0U]);
sMultiWordShr((unsigned int *)&r1.chunks[0U], 15U,
(unsigned int *)&r.chunks[0U]);
cTemp_re = (short)MultiWord2sLong((unsigned int *)&r.chunks[0U]);
sLong2MultiWord(i1 * i4, (unsigned int *)&r12.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r12.chunks[0U], 22U,
(unsigned int *)&r11.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r11.chunks[0U], 21U,
(unsigned int *)&r10.chunks[0U]);
sLong2MultiWord(i5 * i3, (unsigned int *)&r13.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r13.chunks[0U], 22U,
(unsigned int *)&r12.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r12.chunks[0U], 21U,
(unsigned int *)&r11.chunks[0U]);
MultiWordAdd((unsigned int *)&r10.chunks[0U],
(unsigned int *)&r11.chunks[0U],
(unsigned int *)&r9.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r9.chunks[0U], 21U,
(unsigned int *)&r3.chunks[0U]);
sMultiWordShr((unsigned int *)&r3.chunks[0U], 15U,
(unsigned int *)&r1.chunks[0U]);
cTemp_im = (short)MultiWord2sLong((unsigned int *)&r1.chunks[0U]);
i1 = tempOut0Re << 15;
sLong2MultiWord(i1, (unsigned int *)&r12.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r12.chunks[0U], 21U,
(unsigned int *)&r11.chunks[0U]);
i3 = cTemp_re << 15;
sLong2MultiWord(i3, (unsigned int *)&r13.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r13.chunks[0U], 21U,
(unsigned int *)&r12.chunks[0U]);
MultiWordAdd((unsigned int *)&r11.chunks[0U],
(unsigned int *)&r12.chunks[0U],
(unsigned int *)&r10.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r10.chunks[0U], 21U,
(unsigned int *)&r9.chunks[0U]);
sMultiWordShr((unsigned int *)&r9.chunks[0U], 15U,
(unsigned int *)&r3.chunks[0U]);
y[i].re = (short)MultiWord2sLong((unsigned int *)&r3.chunks[0U]);
i4 = tempOut0Im << 15;
sLong2MultiWord(i4, (unsigned int *)&r13.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r13.chunks[0U], 21U,
(unsigned int *)&r12.chunks[0U]);
i5 = cTemp_im << 15;
sLong2MultiWord(i5, (unsigned int *)&r14.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r14.chunks[0U], 21U,
(unsigned int *)&r13.chunks[0U]);
MultiWordAdd((unsigned int *)&r12.chunks[0U],
(unsigned int *)&r13.chunks[0U],
(unsigned int *)&r11.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r11.chunks[0U], 21U,
(unsigned int *)&r10.chunks[0U]);
sMultiWordShr((unsigned int *)&r10.chunks[0U], 15U,
(unsigned int *)&r9.chunks[0U]);
y[i].im = (short)MultiWord2sLong((unsigned int *)&r9.chunks[0U]);
i6 = (nRows – ix) + yIdx;
y[i6].re = y[i].re;
y[i6].im = (short)-y[i].im;
sLong2MultiWord(i1, (unsigned int *)&r14.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r14.chunks[0U], 21U,
(unsigned int *)&r13.chunks[0U]);
sLong2MultiWord(i3, (unsigned int *)&r15.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r15.chunks[0U], 21U,
(unsigned int *)&r14.chunks[0U]);
MultiWordSub((unsigned int *)&r13.chunks[0U],
(unsigned int *)&r14.chunks[0U],
(unsigned int *)&r12.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r12.chunks[0U], 21U,
(unsigned int *)&r11.chunks[0U]);
sMultiWordShr((unsigned int *)&r11.chunks[0U], 15U,
(unsigned int *)&r10.chunks[0U]);
i = (N2 + ix) + yIdx;
y[i].re = (short)MultiWord2sLong((unsigned int *)&r10.chunks[0U]);
sLong2MultiWord(i4, (unsigned int *)&r15.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r15.chunks[0U], 21U,
(unsigned int *)&r14.chunks[0U]);
sLong2MultiWord(i5, (unsigned int *)&r16.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r16.chunks[0U], 21U,
(unsigned int *)&r15.chunks[0U]);
MultiWordSub((unsigned int *)&r14.chunks[0U],
(unsigned int *)&r15.chunks[0U],
(unsigned int *)&r13.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r13.chunks[0U], 21U,
(unsigned int *)&r12.chunks[0U]);
sMultiWordShr((unsigned int *)&r12.chunks[0U], 15U,
(unsigned int *)&r11.chunks[0U]);
y[i].im = (short)MultiWord2sLong((unsigned int *)&r11.chunks[0U]);
y[i2].re = y[i].re;
y[i2].im = (short)-y[i].im;
tempOut0Re_tmp += twiddleStep;
}
}
Is there a way to self-generate code that operates on 16-bit data and remove the Multiword functions? Hello everyone, I’m new to MATLAB and MATLAB coder. I’m trying to self-generate a code for a STM32F446RE microcontroller with MATLAB coder to use it on STM32CubeIDE. The code that I’m trying to generate is an FFT of fixed-point data. I’m using the dsp.FFT function with a 16-bit world length because it supports fixed-point.
This is my MATLAB script
s = readmatrix("FFT_data.txt");
c = fi(s,1,16);
q = fourier(c);
This is my MATLAB function
function [Y] = fourier(X)
ft = dsp.FFT("FFTLengthSource","Property","Normalize",true,"FFTLength",1024);
Y = abs(ft(X));
end
The program is working on my Micro, but it’s a little bit too slow. I think the problem is that the C code generated by MATLAB uses 64-bit Multiword functions despite the data being 16 bits long in MATLAB.
static void c_MWDSPCG_FFT_DblLen_Nrm_YCs16n(cint16_T y[], int nChans, int nRows,
const short twiddleTable[],
int twiddleStep)
{
int64m_T r;
int64m_T r1;
int64m_T r10;
int64m_T r11;
int64m_T r12;
int64m_T r13;
int64m_T r14;
int64m_T r15;
int64m_T r16;
int64m_T r2;
int64m_T r3;
int64m_T r4;
int64m_T r5;
int64m_T r6;
int64m_T r7;
int64m_T r8;
int64m_T r9;
int N2;
int N4;
int i;
int ix;
int tempOut0Re_tmp;
int yIdx;
short tempOut0Im;
short tempOut0Re;
/* In-place "double-length" data recovery
Table-based mem-optimized twiddle computation
Used to recover linear-ordered length-N point complex FFT result
from a linear-ordered complex length-N/2 point FFT, performed
on N interleaved real values.
*/
N2 = nRows >> 1;
N4 = N2 >> 1;
yIdx = nRows * (nChans – 1);
if (nRows > 2) {
tempOut0Re_tmp = N4 + yIdx;
tempOut0Re = (short)(y[tempOut0Re_tmp].re >> 1);
tempOut0Im = (short)(y[tempOut0Re_tmp].im >> 1);
i = (N2 + N4) + yIdx;
y[i].re = tempOut0Re;
y[i].im = tempOut0Im;
y[tempOut0Re_tmp].re = tempOut0Re;
y[tempOut0Re_tmp].im = (short)-tempOut0Im;
}
if (nRows > 1) {
sLong2MultiWord(y[yIdx].re << 15, (unsigned int *)&r.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r.chunks[0U], 21U,
(unsigned int *)&r2.chunks[0U]);
sLong2MultiWord(y[yIdx].im << 15, (unsigned int *)&r1.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r1.chunks[0U], 21U,
(unsigned int *)&r.chunks[0U]);
MultiWordSub((unsigned int *)&r2.chunks[0U], (unsigned int *)&r.chunks[0U],
(unsigned int *)&r4.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r4.chunks[0U], 21U,
(unsigned int *)&r5.chunks[0U]);
sMultiWordShr((unsigned int *)&r5.chunks[0U], 1U,
(unsigned int *)&r6.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r6.chunks[0U], 21U,
(unsigned int *)&r7.chunks[0U]);
sMultiWordShr((unsigned int *)&r7.chunks[0U], 15U,
(unsigned int *)&r8.chunks[0U]);
i = N2 + yIdx;
y[i].re = (short)MultiWord2sLong((unsigned int *)&r8.chunks[0U]);
y[i].im = 0;
}
sLong2MultiWord(y[yIdx].re << 15, (unsigned int *)&r1.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r1.chunks[0U], 21U,
(unsigned int *)&r.chunks[0U]);
sLong2MultiWord(y[yIdx].im << 15, (unsigned int *)&r3.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r3.chunks[0U], 21U,
(unsigned int *)&r1.chunks[0U]);
MultiWordAdd((unsigned int *)&r.chunks[0U], (unsigned int *)&r1.chunks[0U],
(unsigned int *)&r2.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r2.chunks[0U], 21U,
(unsigned int *)&r4.chunks[0U]);
sMultiWordShr((unsigned int *)&r4.chunks[0U], 1U,
(unsigned int *)&r5.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r5.chunks[0U], 21U,
(unsigned int *)&r6.chunks[0U]);
sMultiWordShr((unsigned int *)&r6.chunks[0U], 15U,
(unsigned int *)&r7.chunks[0U]);
y[yIdx].re = (short)MultiWord2sLong((unsigned int *)&r7.chunks[0U]);
y[yIdx].im = 0;
tempOut0Re_tmp = twiddleStep;
for (ix = 1; ix < N4; ix++) {
int i1;
int i2;
int i3;
int i4;
int i5;
int i6;
short cTemp_im;
short cTemp_re;
i = ix + yIdx;
i1 = y[i].re << 15;
sLong2MultiWord(i1, (unsigned int *)&r3.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r3.chunks[0U], 21U,
(unsigned int *)&r1.chunks[0U]);
i2 = (N2 – ix) + yIdx;
i3 = y[i2].re << 15;
sLong2MultiWord(i3, (unsigned int *)&r9.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r9.chunks[0U], 21U,
(unsigned int *)&r3.chunks[0U]);
MultiWordAdd((unsigned int *)&r1.chunks[0U], (unsigned int *)&r3.chunks[0U],
(unsigned int *)&r.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r.chunks[0U], 21U,
(unsigned int *)&r2.chunks[0U]);
sMultiWordShr((unsigned int *)&r2.chunks[0U], 2U,
(unsigned int *)&r4.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r4.chunks[0U], 21U,
(unsigned int *)&r5.chunks[0U]);
sMultiWordShr((unsigned int *)&r5.chunks[0U], 15U,
(unsigned int *)&r6.chunks[0U]);
tempOut0Re = (short)MultiWord2sLong((unsigned int *)&r6.chunks[0U]);
i4 = y[i].im << 15;
sLong2MultiWord(i4, (unsigned int *)&r9.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r9.chunks[0U], 21U,
(unsigned int *)&r3.chunks[0U]);
i5 = y[i2].im << 15;
sLong2MultiWord(i5, (unsigned int *)&r10.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r10.chunks[0U], 21U,
(unsigned int *)&r9.chunks[0U]);
MultiWordSub((unsigned int *)&r3.chunks[0U], (unsigned int *)&r9.chunks[0U],
(unsigned int *)&r1.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r1.chunks[0U], 21U,
(unsigned int *)&r.chunks[0U]);
sMultiWordShr((unsigned int *)&r.chunks[0U], 2U,
(unsigned int *)&r2.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r2.chunks[0U], 21U,
(unsigned int *)&r4.chunks[0U]);
sMultiWordShr((unsigned int *)&r4.chunks[0U], 15U,
(unsigned int *)&r5.chunks[0U]);
tempOut0Im = (short)MultiWord2sLong((unsigned int *)&r5.chunks[0U]);
sLong2MultiWord(i4, (unsigned int *)&r10.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r10.chunks[0U], 21U,
(unsigned int *)&r9.chunks[0U]);
sLong2MultiWord(i5, (unsigned int *)&r11.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r11.chunks[0U], 21U,
(unsigned int *)&r10.chunks[0U]);
MultiWordAdd((unsigned int *)&r9.chunks[0U],
(unsigned int *)&r10.chunks[0U],
(unsigned int *)&r3.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r3.chunks[0U], 21U,
(unsigned int *)&r1.chunks[0U]);
sMultiWordShr((unsigned int *)&r1.chunks[0U], 2U,
(unsigned int *)&r.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r.chunks[0U], 21U,
(unsigned int *)&r2.chunks[0U]);
sMultiWordShr((unsigned int *)&r2.chunks[0U], 15U,
(unsigned int *)&r4.chunks[0U]);
y[i].re = (short)MultiWord2sLong((unsigned int *)&r4.chunks[0U]);
sLong2MultiWord(i3, (unsigned int *)&r11.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r11.chunks[0U], 21U,
(unsigned int *)&r10.chunks[0U]);
sLong2MultiWord(i1, (unsigned int *)&r12.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r12.chunks[0U], 21U,
(unsigned int *)&r11.chunks[0U]);
MultiWordSub((unsigned int *)&r10.chunks[0U],
(unsigned int *)&r11.chunks[0U],
(unsigned int *)&r9.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r9.chunks[0U], 21U,
(unsigned int *)&r3.chunks[0U]);
sMultiWordShr((unsigned int *)&r3.chunks[0U], 2U,
(unsigned int *)&r1.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r1.chunks[0U], 21U,
(unsigned int *)&r.chunks[0U]);
sMultiWordShr((unsigned int *)&r.chunks[0U], 15U,
(unsigned int *)&r2.chunks[0U]);
y[i].im = (short)MultiWord2sLong((unsigned int *)&r2.chunks[0U]);
i1 = twiddleTable[tempOut0Re_tmp + N4 * twiddleStep];
i3 = y[i].re;
sLong2MultiWord(i1 * i3, (unsigned int *)&r11.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r11.chunks[0U], 22U,
(unsigned int *)&r10.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r10.chunks[0U], 21U,
(unsigned int *)&r9.chunks[0U]);
i4 = y[i].im;
i5 = twiddleTable[tempOut0Re_tmp + N2 * twiddleStep];
sLong2MultiWord(i5 * i4, (unsigned int *)&r12.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r12.chunks[0U], 22U,
(unsigned int *)&r11.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r11.chunks[0U], 21U,
(unsigned int *)&r10.chunks[0U]);
MultiWordSub((unsigned int *)&r9.chunks[0U],
(unsigned int *)&r10.chunks[0U],
(unsigned int *)&r3.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r3.chunks[0U], 21U,
(unsigned int *)&r1.chunks[0U]);
sMultiWordShr((unsigned int *)&r1.chunks[0U], 15U,
(unsigned int *)&r.chunks[0U]);
cTemp_re = (short)MultiWord2sLong((unsigned int *)&r.chunks[0U]);
sLong2MultiWord(i1 * i4, (unsigned int *)&r12.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r12.chunks[0U], 22U,
(unsigned int *)&r11.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r11.chunks[0U], 21U,
(unsigned int *)&r10.chunks[0U]);
sLong2MultiWord(i5 * i3, (unsigned int *)&r13.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r13.chunks[0U], 22U,
(unsigned int *)&r12.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r12.chunks[0U], 21U,
(unsigned int *)&r11.chunks[0U]);
MultiWordAdd((unsigned int *)&r10.chunks[0U],
(unsigned int *)&r11.chunks[0U],
(unsigned int *)&r9.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r9.chunks[0U], 21U,
(unsigned int *)&r3.chunks[0U]);
sMultiWordShr((unsigned int *)&r3.chunks[0U], 15U,
(unsigned int *)&r1.chunks[0U]);
cTemp_im = (short)MultiWord2sLong((unsigned int *)&r1.chunks[0U]);
i1 = tempOut0Re << 15;
sLong2MultiWord(i1, (unsigned int *)&r12.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r12.chunks[0U], 21U,
(unsigned int *)&r11.chunks[0U]);
i3 = cTemp_re << 15;
sLong2MultiWord(i3, (unsigned int *)&r13.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r13.chunks[0U], 21U,
(unsigned int *)&r12.chunks[0U]);
MultiWordAdd((unsigned int *)&r11.chunks[0U],
(unsigned int *)&r12.chunks[0U],
(unsigned int *)&r10.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r10.chunks[0U], 21U,
(unsigned int *)&r9.chunks[0U]);
sMultiWordShr((unsigned int *)&r9.chunks[0U], 15U,
(unsigned int *)&r3.chunks[0U]);
y[i].re = (short)MultiWord2sLong((unsigned int *)&r3.chunks[0U]);
i4 = tempOut0Im << 15;
sLong2MultiWord(i4, (unsigned int *)&r13.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r13.chunks[0U], 21U,
(unsigned int *)&r12.chunks[0U]);
i5 = cTemp_im << 15;
sLong2MultiWord(i5, (unsigned int *)&r14.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r14.chunks[0U], 21U,
(unsigned int *)&r13.chunks[0U]);
MultiWordAdd((unsigned int *)&r12.chunks[0U],
(unsigned int *)&r13.chunks[0U],
(unsigned int *)&r11.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r11.chunks[0U], 21U,
(unsigned int *)&r10.chunks[0U]);
sMultiWordShr((unsigned int *)&r10.chunks[0U], 15U,
(unsigned int *)&r9.chunks[0U]);
y[i].im = (short)MultiWord2sLong((unsigned int *)&r9.chunks[0U]);
i6 = (nRows – ix) + yIdx;
y[i6].re = y[i].re;
y[i6].im = (short)-y[i].im;
sLong2MultiWord(i1, (unsigned int *)&r14.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r14.chunks[0U], 21U,
(unsigned int *)&r13.chunks[0U]);
sLong2MultiWord(i3, (unsigned int *)&r15.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r15.chunks[0U], 21U,
(unsigned int *)&r14.chunks[0U]);
MultiWordSub((unsigned int *)&r13.chunks[0U],
(unsigned int *)&r14.chunks[0U],
(unsigned int *)&r12.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r12.chunks[0U], 21U,
(unsigned int *)&r11.chunks[0U]);
sMultiWordShr((unsigned int *)&r11.chunks[0U], 15U,
(unsigned int *)&r10.chunks[0U]);
i = (N2 + ix) + yIdx;
y[i].re = (short)MultiWord2sLong((unsigned int *)&r10.chunks[0U]);
sLong2MultiWord(i4, (unsigned int *)&r15.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r15.chunks[0U], 21U,
(unsigned int *)&r14.chunks[0U]);
sLong2MultiWord(i5, (unsigned int *)&r16.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r16.chunks[0U], 21U,
(unsigned int *)&r15.chunks[0U]);
MultiWordSub((unsigned int *)&r14.chunks[0U],
(unsigned int *)&r15.chunks[0U],
(unsigned int *)&r13.chunks[0U]);
MultiWordSignedWrap((unsigned int *)&r13.chunks[0U], 21U,
(unsigned int *)&r12.chunks[0U]);
sMultiWordShr((unsigned int *)&r12.chunks[0U], 15U,
(unsigned int *)&r11.chunks[0U]);
y[i].im = (short)MultiWord2sLong((unsigned int *)&r11.chunks[0U]);
y[i2].re = y[i].re;
y[i2].im = (short)-y[i].im;
tempOut0Re_tmp += twiddleStep;
}
}
Is there a way to self-generate code that operates on 16-bit data and remove the Multiword functions? fft, dsp.fft, matlab, matlab coder, embedded coder, stm32, fixed-point MATLAB Answers — New Questions
Gear teeth dimension identification
Hi, I am doing the project where i need to measure the Gear Teeth dimension like (Teeth width ,thickness, pitch error, PCD) acquired images from Machine vision system.I tried with Simulink script. But the results are not correct.Request you to share your views and coding on how to estimate the gear teeth dimension.Hi, I am doing the project where i need to measure the Gear Teeth dimension like (Teeth width ,thickness, pitch error, PCD) acquired images from Machine vision system.I tried with Simulink script. But the results are not correct.Request you to share your views and coding on how to estimate the gear teeth dimension. Hi, I am doing the project where i need to measure the Gear Teeth dimension like (Teeth width ,thickness, pitch error, PCD) acquired images from Machine vision system.I tried with Simulink script. But the results are not correct.Request you to share your views and coding on how to estimate the gear teeth dimension. gear teeth dimension measurement MATLAB Answers — New Questions
How to set register address with devmem on ZCU216?
Currently we are using ZCU216 with matlab/Simulink to develop logics. We created a register and its name is "Delay1Reg" and address is 0x0488 (see red box in attached photo) . When we use matlab terminal and write "writePort(hFPGA, "Delay1Reg",255);". This works very well.
Now we want to use an ssh connection and write the register from the embedded linux system e.g. "devmem 0x0488". But this looks like it’s reading something wrong. Do you have any ideas what is this register’saddress is using the devmem command?
I also have attached vivado’smemory map.Currently we are using ZCU216 with matlab/Simulink to develop logics. We created a register and its name is "Delay1Reg" and address is 0x0488 (see red box in attached photo) . When we use matlab terminal and write "writePort(hFPGA, "Delay1Reg",255);". This works very well.
Now we want to use an ssh connection and write the register from the embedded linux system e.g. "devmem 0x0488". But this looks like it’s reading something wrong. Do you have any ideas what is this register’saddress is using the devmem command?
I also have attached vivado’smemory map. Currently we are using ZCU216 with matlab/Simulink to develop logics. We created a register and its name is "Delay1Reg" and address is 0x0488 (see red box in attached photo) . When we use matlab terminal and write "writePort(hFPGA, "Delay1Reg",255);". This works very well.
Now we want to use an ssh connection and write the register from the embedded linux system e.g. "devmem 0x0488". But this looks like it’s reading something wrong. Do you have any ideas what is this register’saddress is using the devmem command?
I also have attached vivado’smemory map. devmem, zcu216, register address MATLAB Answers — New Questions
The ribbon greys out once I enter the egual symbol in a cell to start a formula
Hello Everyone
First let me say that I am not proficient in Excel so please if you decide to help me out, please consider that you will be helping someone who is still learning. I had been working on a worksheet for awhile, but all of a sudden , whenever I enter the equal symbol (=) in a cell to start a formula, all the ribbon options goes grey and I can’t use. I already googled and it says that I don’t have permission, but its my computer, my worksheet and I am the only one who uses the computer. And I was using before so how come now I don’t have permission? Would someone please help?
Thank you so much.
Hello Everyone First let me say that I am not proficient in Excel so please if you decide to help me out, please consider that you will be helping someone who is still learning. I had been working on a worksheet for awhile, but all of a sudden , whenever I enter the equal symbol (=) in a cell to start a formula, all the ribbon options goes grey and I can’t use. I already googled and it says that I don’t have permission, but its my computer, my worksheet and I am the only one who uses the computer. And I was using before so how come now I don’t have permission? Would someone please help? Thank you so much. Read More
MATLAB:mex:ErrInvalidMEXFile : Invalid MEX-file: The specified procedure could not be found.
I have been facing a vicious Mex runtime error for weeks now that is significantly wasting my time without getting anywhere to resolve it. The error message is in the title of this question. Surprisingly, the compiled Mex files run smoothly under MATLAB 2023b and 2024a, but not under the older versions of MATLAB. Even stranger, I am compiling the Mex file with MATLAB 2022a, and removing all other matlab installations from the paths, and still getting this runtime error with the same MATLAB 2022a, but not with other newer installations.
What could be going wrong? How can I trace the root of this persistent error that sometimes changes to slightly different messages?I have been facing a vicious Mex runtime error for weeks now that is significantly wasting my time without getting anywhere to resolve it. The error message is in the title of this question. Surprisingly, the compiled Mex files run smoothly under MATLAB 2023b and 2024a, but not under the older versions of MATLAB. Even stranger, I am compiling the Mex file with MATLAB 2022a, and removing all other matlab installations from the paths, and still getting this runtime error with the same MATLAB 2022a, but not with other newer installations.
What could be going wrong? How can I trace the root of this persistent error that sometimes changes to slightly different messages? I have been facing a vicious Mex runtime error for weeks now that is significantly wasting my time without getting anywhere to resolve it. The error message is in the title of this question. Surprisingly, the compiled Mex files run smoothly under MATLAB 2023b and 2024a, but not under the older versions of MATLAB. Even stranger, I am compiling the Mex file with MATLAB 2022a, and removing all other matlab installations from the paths, and still getting this runtime error with the same MATLAB 2022a, but not with other newer installations.
What could be going wrong? How can I trace the root of this persistent error that sometimes changes to slightly different messages? matlab, mex, mex compiler MATLAB Answers — New Questions
How to force the insertion of credentials?
Hi, I connect to a Power BI dataset via Excel. The thing is, I have several accounts and every now and then I get this problem where it tries to connect using another account that is not the correct one. Before, I would clear the Excel cache or remove the accounts in Credential Manager and it would work, asking me to enter the account username. Now I can no longer force this request for credentials.
I’ve tried it and I couldn’t figure out how I can log in again to this connection, which is saved on my machine as an ODC connection. Can anyone give me some guidance on how to solve this?
Hi, I connect to a Power BI dataset via Excel. The thing is, I have several accounts and every now and then I get this problem where it tries to connect using another account that is not the correct one. Before, I would clear the Excel cache or remove the accounts in Credential Manager and it would work, asking me to enter the account username. Now I can no longer force this request for credentials.I’ve tried it and I couldn’t figure out how I can log in again to this connection, which is saved on my machine as an ODC connection. Can anyone give me some guidance on how to solve this? Read More
FAQ: Changing the price of a private offer at time of renewal
Q: If partner has set a private offer to be renewed annually, can partner change the price at the time of renewal? And if partner has set the offer to be renewed annually, can partner change the price during the period?
A: if a private offer has ended and a renewal is due, the partner can create a new private offer with a new price, however the customer must accept it, meaning that the customer agrees to the price change. For private offers that have a multiyear billing component, partners cannot update the price midterm Frequently asked questions about Independent Software Vendor (ISV) to customer private offers in Partner Center. – Marketplace publisher | Microsoft Learn.
Q: If partner has set a private offer to be renewed annually, can partner change the price at the time of renewal? And if partner has set the offer to be renewed annually, can partner change the price during the period?
A: if a private offer has ended and a renewal is due, the partner can create a new private offer with a new price, however the customer must accept it, meaning that the customer agrees to the price change. For private offers that have a multiyear billing component, partners cannot update the price midterm Frequently asked questions about Independent Software Vendor (ISV) to customer private offers in Partner Center. – Marketplace publisher | Microsoft Learn.
Read More