メインコンテンツ

結果:

I am trying to integrate an external C++ function (large package) into a mex function. I have written a cmake file, which generates library for external C++ function and I am using matlab_add_mex to generate the mex-file.
# Find MATLAB
set(Matlab_ROOT_DIR "../mathworks/2023b/bin/")
find_package(Matlab REQUIRED)
# Add a MEX target
matlab_add_mex(
NAME my_mex_function
SRC my_mex_function.cpp
LINK_TO my_library
)
find_package(Matlab REQUIRED) - gives following error:
CMake Error at CMakeLists.txt: (find_package):
By not providing "Findmatlab.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "matlab", but CMake did not find one.
Could not find a package configuration file provided by "matlab" with any of the following names:
matlabConfig.cmake
matlab-config.cmake
Add the installation prefix of "matlab" to CMAKE_PREFIX_PATH or set "matlab_DIR" to a directory containing one of the above files. If "matlab" provides a separate development package or SDK, be sure it has been installed.
I searched for matlabConfig.cmake or matlab-config.cmake in matlab installation directory but did not find it. Does Matlab provide provide such files or not? If not how to integrate large C++ programs with MATLAB. I dont want to use system function calls as they are too slow.
Mike Croucher
Mike Croucher
最後のアクティビティ: 2025 年 3 月 25 日

There has been a lot of discussion here about the R2025a Prerelease that has really helped us get it ready for the prime time. Thank you for that!
A new update of the Prerelease has just dropped. So fresh it is still warm from the oven! In my latest blog post I discuss changes in the way MathWorks has been asking-for and processing feedback...and you have all been a part of that.
If you haven't tried the Prerelease in a while, I suggest you update and see how things are looking now.
If you have already submitted a bug report and it hasn't been fixed in this update, you don't need to submit another one. Everything is being tracked!
Have a play, discuss it here and thanks for again for being part of the process.
Bonsoir,
Je suis en train de finaliser Module 4 du cours "Designing and Simulating Physical Models" et j’ai quelques difficultés avec les derniers quiz, notamment ceux liés au projet Simulating Motor Heat Effects.
J’ai suivi toutes les étapes du projet et compris l’utilisation des blocs Relay, PS Product et Thermal Mass, mais j’aimerais avoir des clarifications sur :
Comment tester efficacement mon modèle pour vérifier que la logique de coupure fonctionne bien ?
Quels paramètres thermiques sont les plus critiques pour éviter les erreurs de simulation ?
Y a-t-il des erreurs fréquentes à éviter dans les quiz finaux ?
Si quelqu’un a réussi ces quiz et peut me donner quelques conseils ou orientations, ce serait super !
Merci beaucoup pour votre aide.

Bonsoir

Je me permets de vous contacter afin d’obtenir des informations et un encadrement concernant un projet sur lequel je travaille actuellement. Il s’agit d’une application visant à réguler un oscillateur quantique en potentiel harmonique à l’aide de l’intelligence artificielle.

Plus précisément, mon objectif est de :

Modéliser l’évolution de l’oscillateur quantique sous un potentiel harmonique.

Appliquer des techniques d’IA (réseaux de neurones, renforcement, etc.) pour optimiser la régulation de son état.

Analyser les performances des algorithmes dans le cadre de cette régulation.

Je souhaiterais savoir si vous pourriez m’apporter des conseils ou un encadrement dans la réalisation de ce projet, notamment sur les aspects mathématiques, physiques et computationnels impliqués. De plus, toute suggestion sur des références bibliographiques ou des outils adaptés (MATLAB, Python, TensorFlow, etc.) serait également très précieuse.

Dans l’attente de votre retour, Bien cordialement,

Sara
Sara
最後のアクティビティ: 2025 年 5 月 7 日

📢 We want to hear from you! We're a team of graduate student researchers at the University of Michigan studying MATLAB Drive and other cloud-based systems for sharing coding files. Your feedback will help improve these tools. Take our quick survey here: https://forms.gle/DnHs4XNAwBZvmrAw6
Hello,
I hope you are doing well. I need your help in developing a Matlab model for the modeling and simulation of the energy and environmental performance of an improved stove (furnace) for the combustion of charcoal briquettes (biochar). I would really appreciate your assistance.
Thank you very much.
Khairul
Khairul
最後のアクティビティ: 2025 年 3 月 14 日

Wan Muhamad Hakimi
Wan Muhamad Hakimi
最後のアクティビティ: 2025 年 3 月 14 日

Hi! I am using F28379D DSP. I would like to generate 20khz and 50% duty cycle. I have use ADC with the input 3Vac from voltage sensor. The TBPRD set is 2500 and the CMP value is 1250 with prescaler 1. EPWM1A and EPWM 1B are utilised in this case. Unfortunately EPWM1A duty cycle is shifting/moving/not in phase, EPWM1B is constantly producing 20khz. I am using updown counter. CAU is set CAD is Clear same goes to EPWM1B. Why this happen? I would like to do a switching where PWM 20khz is on during positive half cycle, PWM 20khz is off during negative half cycle. Appreciate for the help!
goc3
goc3
最後のアクティビティ: 2025 年 4 月 6 日

No
50%
Yes, but I am not interested
8%
Yes, but it is too expensive
20%
Yes, I would like to know more
18%
Yes, I am cert. MATLAB Associate
2%
Yes, I am cert. MATLAB Professional
3%
4779 票
Mike Croucher
Mike Croucher
最後のアクティビティ: 2025 年 3 月 12 日

Imagine you are developing a new toolbox for MATLAB. You have a folder full of a few .m files defining a bunch of functions and you are thinking 'This would be useful for others, I'm going to make it available to the world'
What process would you go through? What's the first thing you'd do?
I have my own opinions but don't want to pollute the start of the conversation :)
Hello MATLAB Community,
I'm working on a project where I need to model and simulate a generator or motor system in Simulink, and I want to get the output voltage based on certain design parameters, including the number of turns, magnets, and coils.
I’m looking for a Simulink model or component that would allow me to input:
  • The number of turns in the coils
  • The number of magnets
  • The number of coils
And then, based on this design, output the voltage generated by the system.
I would appreciate any guidance on:
  • Specific Simulink components or models that are suited for this purpose
  • Whether there’s a prebuilt block or if I need to build a custom model
  • Any tips or examples that can help me set up this simulation
Thanks in advance for your help!
Best regards,
Siyabonga
I am glad to inform and share with you all my new text book titled "Inverters and AC Drives
Control, Modeling, and Simulation Using Simulink", Springer, 2024. This text book has nine chapters and three appendices. A separate "Instructor Manual" is rpovided with solutions to selected model projects. The salent features of this book are given below:
  • Provides Simulink models for various PWM techniques used for inverters
  • Presents vector and direct torque control of inverter-fed AC drives and fuzzy logic control of converter-fed AC drives
  • Includes examples, case studies, source codes of models, and model projects from all the chapters
The Springer link for this text book is given below:
This book is also in the Mathworks book program:
Steve Eddins
Steve Eddins
最後のアクティビティ: 2025 年 4 月 15 日

Over the last 5 years or so, the highest-traffic post on my MATLAB Central image processing blog was not actually about image processing; it was about changing the default line thickness in plots.
Now I have written about some other MATLAB plotting behavior that I have recently changed to suit my own preferences. See this new blog post.
Here is a standard MATLAB plot:
x = 0:pi/100:2*pi;
y1 = sin(x);
y2 = cos(x);
plot(x,y1,x,y2)
I don't like some aspects of this plot, and so I have put the following code into my startup file.
set(groot,"DefaultLineLineWidth",2)
set(groot,"DefaultAxesXLimitMethod","padded")
set(groot,"DefaultAxesYLimitMethod","padded")
set(groot,"DefaultAxesZLimitMethod","padded")
set(groot,"DefaultAxesXGrid","on")
set(groot,"DefaultAxesYGrid","on")
set(groot,"DefaultAxesZGrid","on")
With those defaults changed, here is my preferred appearance:
plot(x,y1,x,y2)
To develop uifigure-based app, I wish MATLAB can provide something like uiquestdlg to replace questdlg without changing too much of the original code developed for figure-based app. Also, uiinputdlg <-> inputdlg and so on.
It is time to support the cameraIntrinsics function to accept a 3-by-3 intrinsic matrix K as an input parameter for constructing the object. Currently, the built-in cameraIntrinsics function can only be constructed by explicitly specifying focalLength, principalPoint, and imageSize. This approach has drawbacks, as it is not very intuitive. In most application scenarios, using the intrinsic matrix
K=[fx,0,cx;
0,fy,cy;
0,0,1]
is much more straightforward and effective!
intrinsics = cameraIntrinsics(K)
Learn the basic of quantum computing, how to simulate quantum circuits on MATLAB and how to run them on real quantum computers using Amazon Braket. There will also be a demonstration of machine learning using quantum computers!
Details at MATLAB-AMAZON Braket Hands-on Quantum Machine Learning Workshop - MATLAB & Simulink. This will be led by MathWorker Hossein Jooya.
I kicked off my own exploration of Quantum Computing in MATLAB a year or so ago and wrote it up on The MATLAB Blog: Quantum computing in MATLAB R2023b: On the desktop and in the cloud » The MATLAB Blog - MATLAB & Simulink. This made use of the MATLAB Support Package for Quantum Computing - File Exchange - MATLAB Central
insherah
insherah
最後のアクティビティ: 2025 年 3 月 4 日

I need guidance how to create random forest block in simulink My coding use tree bagger for classification

yousfi
yousfi
最後のアクティビティ: 2025 年 3 月 4 日

I want to impliment Park and Clark transform in matlab Simulink can anyone help me do it plz
"I need an exchange file for symmetrical fault analysis for the protection coordination of relays but cannot find it. Could you suggest how I can find it?"
Rajendra
Rajendra
最後のアクティビティ: 2025 年 3 月 4 日

i have to paste the url generated in the output ide everytime to get the data on my thingspeak channel: e,g.: http://api.thingspeak.com/update?api_key=382U4EOXANOKEW3I&field1=27.25&field2=3.27&field3=0.00
my code is :
#include "DHT.h"
#define DHTPIN 15 // Pin where DHT sensor is connected
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
#define THINGSPEAK_API_KEY "382U4EOXANOKEW3I"
#include <SoftwareSerial.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <ArduinoJson.h>
SoftwareSerial myserial(10, 11); // RX, TX for GSM communication
// Temperature Sensor Setup
#define ONE_WIRE_BUS 5
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
// Flow Sensor Setup
#define SENSOR_PIN 2
volatile byte pulseCount = 0;
float flowRate = 0.0;
unsigned int flowMilliLitres = 0;
unsigned long totalMilliLitres = 0;
unsigned long oldTime = 0;
float calibrationFactor = 5.5; // Calibration factor for flow meter
// Turbidity Sensor Setup
int turbiditySensorValue;
float voltage;
// Variables for DHT sensor
float temperatureC;
float temperatureF;
void setup() {
Serial.begin(9600);
myserial.begin(9600);
pinMode(SENSOR_PIN, INPUT);
digitalWrite(SENSOR_PIN, HIGH);
pulseCount = 0;
flowRate = 0.0;
flowMilliLitres = 0;
totalMilliLitres = 0;
oldTime = 0;
attachInterrupt(digitalPinToInterrupt(SENSOR_PIN), pulseCounter, FALLING);
sensors.begin(); // Initialize temperature sensor
dht.begin(); // Initialize DHT sensor
// GSM Initialization with better error checking
initGSM();
}
void initGSM() {
Serial.println("Initializing GSM...");
// Wait for GSM module to respond
while (!sendATCommand("AT", "OK", 1000)) {
Serial.println("Waiting for GSM module...");
delay(1000);
}
sendATCommand("AT+SAPBR=3,1,\"Contype\",\"GPRS\"", "OK", 2000);
sendATCommand("AT+SAPBR=3,1,\"APN\",\"your_apn\"", "OK", 2000); // Change APN if needed
sendATCommand("AT+SAPBR=1,1", "OK", 2000);
sendATCommand("AT+SAPBR=2,1", "OK", 2000);
}
bool sendATCommand(const char* command, const char* expected_answer, unsigned int timeout) {
Serial.println("Sending command: " + String(command));
myserial.println(command);
String response = "";
unsigned long previous = millis();
while (millis() - previous < timeout) {
while (myserial.available()) {
char c = myserial.read();
response += c;
}
if (response.indexOf(expected_answer) >= 0) {
Serial.println("Response: " + response); // Print full response
return true;
}
}
Serial.println("Timeout! No response or unexpected response: " + response);
return false;
}
void loop() {
flowMeter();
temperature();
turbidity();
sendToThingSpeak();
delay(15000); // 15 second delay between readings
}
void flowMeter() {
if ((millis() - oldTime) > 1000) {
detachInterrupt(digitalPinToInterrupt(SENSOR_PIN));
flowRate = ((1000.0 / (millis() - oldTime)) * pulseCount) / calibrationFactor;
oldTime = millis();
flowMilliLitres = (flowRate / 60) * 1000;
totalMilliLitres += flowMilliLitres;
Serial.print("Flow rate: ");
Serial.print(flowRate, 2); // Print with 2 decimal places
Serial.println(" L/min");
pulseCount = 0;
attachInterrupt(digitalPinToInterrupt(SENSOR_PIN), pulseCounter, FALLING);
}
}
void pulseCounter() {
pulseCount++;
}
void temperature() {
sensors.requestTemperatures();
temperatureC = sensors.getTempCByIndex(0);
temperatureF = sensors.toFahrenheit(temperatureC);
Serial.print("Temperature: ");
Serial.print(temperatureC);
Serial.println("°C");
}
void turbidity() {
turbiditySensorValue = analogRead(A0);
voltage = turbiditySensorValue * (5.0 / 1024.0);
Serial.print("Turbidity Voltage: ");
Serial.println(voltage, 2); // Print with 2 decimal places
}
void sendToThingSpeak() {
// Check if GSM is connected
if (!sendATCommand("AT+SAPBR=2,1", "OK", 2000)) {
Serial.println("GSM Network Issue! Not sending data.");
return;
}
// Close any existing HTTP connection
sendATCommand("AT+HTTPTERM", "OK", 1000);
delay(1000);
// Initialize HTTP service
if (!sendATCommand("AT+HTTPINIT", "OK", 2000)) {
Serial.println("HTTP init failed");
return;
}
sendATCommand("AT+HTTPPARA=\"CID\",1", "OK", 1000);
// Construct URL properly
String url = "http://api.thingspeak.com/update?api_key=";
url += THINGSPEAK_API_KEY;
url += "&field1=" + String(temperatureC);
url += "&field2=" + String(voltage);
url += "&field3=" + String(flowRate);
Serial.println("Generated URL: " + url); // Print full URL before sending
// Send URL parameter properly
String command = "AT+HTTPPARA=\"URL\",\"" + url + "\"";
if (!sendATCommand(command.c_str(), "OK", 2000)) {
Serial.println("Setting URL failed");
return;
}
// Start HTTP GET request
if (!sendATCommand("AT+HTTPACTION=0", "+HTTPACTION: 0,200", 5000)) {
Serial.println("HTTP GET command failed");
return;
}
delay(5000); // Wait for response
// Read HTTP response
if (!sendATCommand("AT+HTTPREAD", "OK", 5000)) {
Serial.println("Failed to read HTTP response");
return;
}
Serial.println("Data sent successfully!");
// Close HTTP connection
sendATCommand("AT+HTTPTERM", "OK", 1000);
}