Main Content

Results for

In short: support varying color in at least the plot, plot3, fplot, and fplot3 functions.
This has been a thing that's come up quite a few times, and includes questions/requests by users, workarounds by the community, and workarounds presented by MathWorks -- examples of each below. It's a feature that exists in Python's Matplotlib library and Sympy. Anyways, given that there are myriads of workarounds, it appears to be one of the most common requests for Matlab plots (Matlab's plotting is, IMO, one of the best features of the product), the request precedes the 21st century, and competitive tools provide the functionality, it would seem to me that this might be the next great feature for Matlab plotting.
I'm curious to get the rest of the community's thoughts... what's everyone else think about this?
---
User questions/requests
User-provided workarounds
MathWorks-provided workarounds
%%
clear
clc
close all
% TODO - Replace the [] with channel ID to write data to:
writeChannelID = 'your channel ID'; %channel ID
% TODO - Enter the Write API Key between the '' below:
writeAPIKey = 'your write API Key'; %write API Key
% url for POST request
url = 'https://aemo.com.au/';
webText = webread(url);
filteredData(4) = urlfilter(url,'<div class="summary-row-value">');
display(filteredData(4), 'AEMO');
thingSpeakWrite(writeChannelID, filteredData(4), 'WriteKey', writeAPIKey);
Edward
Edward
Last activity on 3 Apr 2024

The cloks have changed in the UK having gone forward 1 hour but the times on the thingspeak graphs are out an hour - what is the solution please
Gabriel
Gabriel
Last activity on 29 Mar 2024

I keep getting this error, what do I do?
Error: File: convert_mnist_to_mat.m Line: 63 Column: 1
This statement is not inside any function.
(It follows the END that terminates the definition of the function
"read_mnist_labels".)
function convert_mnist_to_mat(mnist_dir, output_file)
% Function to convert MNIST dataset files into .mat format
% Check if the directory exists
if ~isfolder(mnist_dir)
error('MNIST directory does not exist.');
end
% Read training images
train_images = read_mnist_images(fullfile(mnist_dir, 'train-images-idx3-ubyte'));
% Read training labels
train_labels = read_mnist_labels(fullfile(mnist_dir, 'train-labels-idx1-ubyte'));
% Read test images
test_images = read_mnist_images(fullfile(mnist_dir, 't10k-images-idx3-ubyte'));
% Read test labels
test_labels = read_mnist_labels(fullfile(mnist_dir, 't10k-labels-idx1-ubyte'));
% Save data into .mat file
save(output_file, 'train_images', 'train_labels', 'test_images', 'test_labels');
disp('MNIST dataset converted successfully.');
end
function images = read_mnist_images(filename)
% Function to read MNIST image data
fid = fopen(filename, 'rb');
assert(fid ~= -1, ['Could not open ', filename, '']);
magic_number = fread(fid, 1, 'int32', 0, 'ieee-be');
assert(magic_number == 2051, ['Invalid magic number in ', filename]);
num_images = fread(fid, 1, 'int32', 0, 'ieee-be');
num_rows = fread(fid, 1, 'int32', 0, 'ieee-be');
num_cols = fread(fid, 1, 'int32', 0, 'ieee-be');
images = fread(fid, [num_rows, num_cols, num_images], 'uint8');
fclose(fid);
images = permute(images, [2, 1, 3]); % Convert from (rows, cols, images) to (cols, rows, images)
end
function labels = read_mnist_labels(filename)
% Function to read MNIST label data
fid = fopen(filename, 'rb');
assert(fid ~= -1, ['Could not open ', filename, '']);
magic_number = fread(fid, 1, 'int32', 0, 'ieee-be');
assert(magic_number == 2049, ['Invalid magic number in ', filename]);
num_labels = fread(fid, 1, 'int32', 0, 'ieee-be');
labels = fread(fid, [num_labels, 1], 'uint8');
fclose(fid);
end
% Usage example:
mnist_dir = 'C:\Users\gabep\Desktop\MNIST';
output_file = 'mnist_dataset.mat';
convert_mnist_to_mat(mnist_dir, output_file);
Hi everyone, I need help for transfering the data from a ThingSpeak' channel to Google Sheets. Please help me.
Suppose I want to use tiledlayout to draw a 4*6 figure. Now I want to let the first and second row of figures share the same ylabels, and so do the third and the fourth. But I did not find a way to do this. I tried to create two different tiledlayout on one figure, but tiledlayout did not allow me to do so. Thus, any suggestions?

Englisch Translate Französisch Deutsch Deutsch Russisch PONS Deepl übersetzer Spanisch Deutsch DeepL kostenlos Deutsch Englisch hallo, ich bitte um Hilfe! Seit Jahren habe ich Konto auf Thingspeak, den ich für meinen Zweck nicht richtig nutzen kann. Ich kann "Upoad to meine private Chanel", aber das lesen funktioniert nicht, weder in ArdunioIDE, noch Ardunio iot kann ich die gesendete Daten (Temperatur) von einem anderen Board lesen, es ist egal, ob ESP8266, ESP32, MKR, oder UnoWifi Rev2. Nichts! Die Beispiele im Bibliotek sind eine Katastrophe, "wetter-chanel" und diese funktionieren auch nicht. Auch nicht die von GitHub. Es sollte aber einfach sein, denn auf meiner Seite sehe ich ja "GET"+ url. inkl json+result.

Wo gibt es eine richtige sketch für "read private chanel/field" , welche funktioniert? Man braucht nicht die Wifi-Enstellungen, sondern den code für die Abfrage, "Serial.print"(value)"

Bitte um Hilfe, danke schön.

hello, I ask for help! I've had an account on Thingspeak for years, but I can't use it properly for my purpose. I can "Upoad to my private Chanel", but reading doesn't work, neither in ArdunioIDE nor Ardunio iot can I read the sent data (temperature) from another board, it doesn't matter whether ESP8266, ESP32, MKR, or UnoWifi Rev2. Nothing! The examples in the library are a disaster, "weather-chanel" and they don't work either. Not even the one from GitHub. But it should be easy, because on my site I see “GET”+ url. including json+result.

Where is there a proper sketch for "read private chanel/field" that works? You don't need the WiFi settings, but the code for the query, "Serial.print"(value)"

Please help, thank you very much.

Hello Everyone,
I'm running an IoT project at my university using a free . Basically, my system uploads the sensor data to 4 different fields of a ThingSpeak channel and I'm reading from or writing to the channel through Simulink. I have a few questions regarding this topic:
  1. I'm trying to upload to the server every 3 seconds (which seemed to be providing the best results so far). Since the channel only accepts data transmit every 15 seconds, what is the optimized upload interval rate to match the interval rate of the channel? Because otherwise I have realized that my interval rate can go up to 1min sometimes for some reason.
  2. Is reading from/writing to the channel through simulink while the system is uploading data to the channel slow down th whole process? What is your overall suggestion in this case?
I'm excited to hear your suggestions and experiences!
Regards,
Ege
I would like to propose the creation of MATLAB EduHub, a dedicated channel within the MathWorks community where educators, students, and professionals can share and access a wealth of educational material that utilizes MATLAB. This platform would act as a central repository for articles, teaching notes, and interactive learning modules that integrate MATLAB into the teaching and learning of various scientific fields.
Key Features:
1. Resource Sharing: Users will be able to upload and share their own educational materials, such as articles, tutorials, code snippets, and datasets.
2. Categorization and Search: Materials can be categorized for easy searching by subject area, difficulty level, and MATLAB version..
3. Community Engagement: Features for comments, ratings, and discussions to encourage community interaction.
4. Support for Educators: Special sections for educators to share teaching materials and track engagement.
Benefits:
- Enhanced Educational Experience: The platform will enrich the learning experience through access to quality materials.
- Collaboration and Networking: It will promote collaboration and networking within the MATLAB community.
- Accessibility of Resources: It will make educational materials available to a wider audience.
By establishing MATLAB EduHub, I propose a space where knowledge and experience can be freely shared, enhancing the educational process and the MATLAB community as a whole.
Product Models:LPS8N dragino
Firmware Version: lgw--build-v5.4.1704801796-20240109-2005
Hi all
at the moment i can not work with CODE dragino lora to gateway LPS8N and MQTT thingSpeak.
with root commands i can send DATA to thingspeak
mosquito_pub -d -h mqtt3.thingspeak.com -p 1883 -u PSoyJxYWBTQ9Hx8cExMZ... -I PSoyJxYWBTQ9Hx8cExM.... -P hCEd77jdiziYzUV6ygl.... -t channels/2466703/publish -m “field1=100&field2=100&status=MQTTPUBLISH”
so my question there anybody that can work with LPS8N dragino to MQTT ThingSpeak? which code arduino are using?
thanks in advance to answer.
Nelson
I am considering to use ThingSpeak for my use case which is electric motor drive where I want to do a predictive maintanace for.
Is it possible to use ThingSpeak to develop and evaluate the AI/ML model for such purpose and the deploy on realtime microcontroller?
Pranab
Pranab
Last activity on 13 Mar 2024

Dear Sir,
Is Thingspeak support jason data format???
When I am sending data in plain text fiom MQTTX, I see it in dashboard but in JASON format it is not showing in dashboard.
This Arduino ino sketch utilizes the new Arduino R4 with LED matrix. I use a thermistor to measure temperature and send it to the led MAtrix for local display and also to ThingSpeak for cloud display at public
  • Channel ID: 2300884
Note: I used Christopher's suggestion (elsewhere) to start with the Arduino R4 wifi example in the example folder of the Arduino IDE. That made all the difference in the world! Plus, I had serious issues with "write" data until I watched this YouTube video.
I have a development that requires 12 fields, but ThingSpeak only offers 8. Without further subscription, can I combine 2 Channels ?
I've read thru the API refernce doc and the information in the right-hand side panel on "API Keys" tab and so I 'm pretty sure the answer is "no" but throught it was worth double-checking.
My application for this is that I have several devices, each with their own channel. For security, I'd like them to be able to deduce or calculate the write API key to their channel based on their device serial number (which each device knows) so that I don't have to store the API key in their firmware.
thanks...
Hello, I am using an Arduino UNO R3 with an ESP8266 WiFi Shield to connect 2 DHT-11 sensors to upload their data to ThingSpeak. Sometimes ThingSpeak would only post data on a certain sensor for a bit and then upload to the other randomly. I want ThingSpeak to pick up the sensors within 30-40 seconds of each other consistently. I believe there might be something wrong with my code. I was hoping to get some help on it. Anything is appreciated.
Below is provided code
SoftwareSerial esp8266(RX,TX);
void setup() {
Serial.begin(9600);
esp8266.begin(38400);
sendCommand("AT",5,"OK");
sendCommand("AT+CWMODE=1",5,"OK");
sendCommand("AT+CWJAP=\""+ AP +"\",\""+ PASS +"\"",20,"OK");
}
void loop() {
String getData = "GET /update?api_key="+ API +"&field1="+getTemperatureValue()+"&field2="+getHumidityValue();
sendCommand("AT+CIPMUX=1",5,"OK");
sendCommand("AT+CIPSTART=0,\"TCP\",\""+ HOST +"\","+ PORT,15,"OK");
sendCommand("AT+CIPSEND=0," +String(getData.length()+4),4,">");
esp8266.println(getData);delay(6000);countTrueCommand++;
String getData2 = "GET /update?api_key="+ API +"&field3="+getTemperatureValue2()+"&field4="+getHumidityValue2();
sendCommand("AT+CIPMUX=1",5,"OK");
sendCommand("AT+CIPSTART=0,\"TCP\",\""+ HOST +"\","+ PORT,15,"OK");
sendCommand("AT+CIPSEND=0," +String(getData2.length()+4),4,">");
esp8266.println(getData2);delay(6000);countTrueCommand++;
sendCommand("AT+CIPCLOSE=0",5,"OK");
}
String getTemperatureValue(){
dhtObject.read(dht_apin);
Serial.print(" Temperature(C)= ");
int temp = dhtObject.temperature;
Serial.println(temp);
delay(50);
return String(temp);
}
String getHumidityValue(){
dhtObject.read(dht_apin);
Serial.print(" Humidity in %= ");
int humidity = dhtObject.humidity;
Serial.println(humidity);
delay(50);
return String(humidity);
}
String getTemperatureValue2(){
dhtObject2.read(dht_bpin);
Serial.print(" Temperature(C)= ");
int temp2 = dhtObject2.temperature;
Serial.println(temp2);
delay(50);
return String(temp2);
}
String getHumidityValue2(){
dhtObject2.read(dht_bpin);
Serial.print(" Humidity in %= ");
int humidity2 = dhtObject2.humidity;
Serial.println(humidity2);
delay(50);
return String(humidity2);
}
void sendCommand(String command, int maxTime, char readReplay[]) {
Serial.print(countTrueCommand);
Serial.print(". at command => ");
Serial.print(command);
Serial.print(" ");
while(countTimeCommand < (maxTime*1))
{
esp8266.println(command);//at+cipsend
if(esp8266.find(readReplay))//ok
{
found = true;
break;
}
countTimeCommand++;
}
if(found == true)
{
Serial.println("Pass");
countTrueCommand++;
countTimeCommand = 0;
}
if(found == false)
{
Serial.println("Fail");
countTrueCommand = 0;
countTimeCommand = 0;
}
found = false;
}
Several of the colormaps are great for a 256 color surface plot, but aren't well optimized for extracting m colors for plotting several independent lines. The issue is that many colormaps have start/end colors that are too similar or are suboptimal colors for lines. There are certainly many workarounds for this, but it would be a great quality of life to adjust that directly when calling this.
Example:
x = linspace(0,2*pi,101)';
y = [1:6].*cos(x);
figure; plot(x,y,'LineWidth',2); grid on; axis tight;
And now if I wanted to color these lines, I could use something like turbo(6) or gray(6) and then apply it using colororder.
colororder(turbo(6))
But my issue is that the ends of the colormap are too similar. For other colormaps, you may get lines that are too light to be visible against the white background. There are plenty of workarounds, with my preference being to create extra colors and truncate that before using colororder.
cmap = turbo(8); cmap = cmap(2:end-1,:); % Truncate the end colors
figure; plot(x,y,'LineWidth',2); grid on; axis tight;
colororder(cmap)
I think it would be really awesome to add some name-argument input pair to these colormaps that can specify the range you want so this could even be done inside the colororder calling if desired. An example of my proposed solution would look something like this:
cmap = turbo(6,'Range',[0.1 0.8]); % Proposed idea to add functionality
Where in this scenario, the resulting colormap would be 6 equally spaced colors that range from 10% to 80% of the total color range. This would be especially nice because you could more quickly modify the range of colors, or you could set the limits regardless of whether you need to plot 3, 6, or 20 lines.
Sarati
Sarati
Last activity on 29 Feb 2024

Due to temporary problem MathWorks account was unable to login. Kindly resolve this issue.

KAVYA
KAVYA
Last activity on 29 Feb 2024

how to generate CA signed certificate for mqtt
When I embed Matlab windows into C#, I use C# to call the mouse functions such as drawline() and getpts() which are encapsulated in Matlab's dll, and then the program crashes, how can I solve this problem?
ps : The functions that I call in C# can be executed in Matlab.
ps : If I don't embed the window into C#, but just let C# call the Matlab function, it can execute the mouse control normally in the window, but once embedded into the C# window, it will crash when execute the mouse command.