Contenido principal

Resultados de

Dear contest participants,
The 2024 Community Contest—MATLAB Shorts Mini Hack—is just one week away! Last year, we challenged you to create a 48-frame, 2-second animation. This year, we're doubling the fun by increasing the frame count to 96 and adding audio support. Your mission? Create a short movie!
As always, whether you are a seasoned MATLAB user or just a beginner, you can participate in the contest and have opportunities to win amazing prizes.
Timeframe:
  • The contest will run for 5 weeks, from Oct. 7th to Nov. 10th, Eastern Time.
General Rules:
  • The first week is dedicated to entry creation, and the fifth week is reserved for voting only.
  • Create a 96-frame, 4-second animation and add audio. We will loop it 3 times to create a 12-second short movie for you.
  • The character limit remains at 2,000 characters.
Prizes
  • You will have opportunities to win compelling prizes, including Amazon gift cards, MathWorks T-shirts, and virtual badges. We will give out both weekly prizes and grand prizes.
Warm-up!
With one week left before the contest begins, we recommend you warm up by reading a fantastic article: Walkthrough: making Little Nemo's airship in MATLAB by @Tim. The article shares both technical insights and the challenges encountered along the way.
We look forward to seeing all of you in the 2024 MATLAB Shorts Mini Hack.
The MATLAB Central Community Team
Hi everyone,
I'm working on a school project where I need to send sensor data from my Arduino to a Power BI REST API using ThingsHTTP. I've been trying to get this to work, but I'm running into errors like this:
{"error":{"code":"InvalidRequest","message":"Error parsing request for dataset sobe_wowvirtualserver|a7b68fb5-533b-471f-a5da-3bdd6746ee16: Conversion error on column '<pi>pH</pi>': <pi>Input string was not in a correct format.</pi>"}}
I'm a beginner with this, and I'm not sure what I'm doing wrong. What steps should I take to resolve this issue? Also, does anyone know the correct format for an HTTP request body when sending dynamic sensor data?
This is the body format I'm trying to send to Power BI:
[
{
"pH": 98.6,
"TDS": 98.6,
"turbidity": 98.6,
"temperature": 98.6
}
]
Any advice on how to construct the HTTP body with values that change over time would be greatly appreciated! Thanks in advance!"
hope this message finds you well. I am currently working on a project involving the design and numerical simulation of metalenses using Zemax and MATLAB. The design phase involves saving phase data from the Zemax simulation, which is later used in a numerical script to generate the metalens in MATLAB.
I have a MATLAB file that contains the phase data saved from Zemax, but I am unsure of the specific method or format used to extract and save the data from Zemax. The phase data I currently have in MATLAB is as follows:
  • Phase matrix: 571 x 571 (double)
  • X data: 571 x 1 (double)
  • Y data: 571 x 1 (double)
Could you please provide guidance on:
  1. How this phase data was likely saved from Zemax into MATLAB?
  2. What steps or scripts were used to extract this information from the design, particularly the 571 x 571 phase matrix and the corresponding X and Y data?
  3. Any best practices or tools available in Zemax for exporting such data?
This information will help me reproduce the workflow and proceed with my analysis.
Thank you for your support. I look forward to your guidance.
Best regards,
Zaka
Christian
Christian
Última actividad el 18 de Sept. de 2024

I went to perform an IoT for an automated plantation but the same error always occurs to me when I upload it to the mcu node, which is: Connection to ThingSpeak failed.
Chen Lin
Chen Lin
Última actividad el 12 de Sept. de 2024

Dear MATLAB contest enthusiasts,
In the 2023 MATLAB Mini Hack Contest, Tim Marston captivated everyone with his incredible animations, showcasing both creativity and skill, ultimately earning him the 1st prize.
We had the pleasure of interviewing Tim to delve into his inspiring story. You can read the full interview on MathWorks Blogs: Community Q&A – Tim Marston.
Last question: Are you ready for this year’s Mini Hack contest?
It's been over six years since I've written any serious MATLAB code, so I thought it would be fun to see how easily ChatGPT could help me out. While others have probably already used ChatGPT to generate MATLAB code, I didn't find any evidence of it when I searched through the ThingSpeak forum. That inspired me to post an example to get people thinking about it.
This example reads four temperature fields from the same channel and plots them on a single graph.
My ChatGPT prompt:
The prompt is pretty straightforward and essentially walks through all the elements of the chart that I wanted. It's also important to consider any filtering or "data cleansing" that should be done. Since this was my first time doing this, I decided to use an existing plot I was already familiar with as my "target state".
The prompt: "I would like you to generate some MATLAB code to create what is called a MATLAB Visualization. Its purpose will be to generate a chart of 4 fields found in a ThingSpeak channel. The ThingSpeak channel name is "Nest Nanny 2 (NN-02)" and its channel id (needed for the code) is xxxxxxx. The read api key is XXXXXXXXXXXXXXXX. The chart title should be "Nest Nanny 02 (NN-02) Todays Temperature Readings" It should plot data from 4 fields (field 3 - 6) who's names are "Surface Temp", "1/4 Temp", "3/4 Temp", and "Deep Temp". I would like the plot lines for these 4 fields to be different colors (red, orange, cyan, and blue) but on the same chart. I would like Temperature in Fahrenheit to be on the Y axis and Time on the x axis. I would like it to display the last 100 data points. I'd like to use this colororder. colororder(["#FF0000","#FFBB00","#00BBFF", "#0000FF"]) I would like the legend to be to the right of the chart, not contained within the chart. No temperature data should have a value of 50 or less and we can assume it's a sensor issue when this is observed. If a data value is 50 or less, use the value of it's nearest (in the time series) non-zero, non-negative value for that field. The data is stored in the channel as Fahrenheit and does not need to be converted from Celsius. "
Because I did this exercise using an existing plot and had a clear objective in mind, it was relatively quick to iterate four or five times with ChatGPT to refine my prompt. In just a few minutes, the generated plot almost perfectly matched my existing plot. (I xxxx'ed out the channel ID and API key before posting.) For someone who now only occasionally uses MATLAB, this approach saves time and will hopefully allow me to tap into elements of MATLAB that are now beyond my skill level and memory. ;)
ChatGPT generated MATLAB code:
% MATLAB code to create a ThingSpeak Visualization for temperature readings
% Define channel ID and Read API Key
channelID = xxxxxxx;
readAPIKey = 'XXXXXXXXXXXXXXXX';
% Number of data points to retrieve
numPoints = 100;
% Read data from the ThingSpeak channel for fields 3 to 6
[data, time] = thingSpeakRead(channelID, ...
'Fields', [3 4 5 6], ...
'NumPoints', numPoints, ...
'ReadKey', readAPIKey);
% Replace any value 50 or less with the nearest non-zero, non-negative value
for i = 1:size(data, 2)
% Identify indices where the data is 50 or less
badIndices = find(data(:,i) <= 50);
% Identify indices where the data is valid (greater than 50)
validIndices = find(data(:,i) > 50);
% Interpolate to replace bad values
if ~isempty(validIndices)
data(badIndices, i) = interp1(validIndices, data(validIndices, i), badIndices, 'linear', 'extrap');
end
end
% Plot the data
figure;
colororder(["#FF0000","#FFBB00","#00BBFF", "#0000FF"]); % Set the color order
plot(time, data(:,1), 'LineWidth', 2); hold on;
plot(time, data(:,2), 'LineWidth', 2);
plot(time, data(:,3), 'LineWidth', 2);
plot(time, data(:,4), 'LineWidth', 2);
hold off;
% Add labels and title
xlabel('Time');
ylabel('Temperature (°F)');
title('Nest Nanny 02 (NN-02) Todays Temperature Readings');
% Add legend and move it to the right of the chart
legend({'Surface Temp', '1/4 Temp', '3/4 Temp', 'Deep Temp'}, ...
'Location', 'eastoutside');
% Format the time on the x-axis
datetick('x', 'HH:MM:SS', 'keepticks');
grid on;
% Adjust the figure for better readability
set(gca, 'FontSize', 12);
Plot Comparison:
I am creating an ESP32 device which will upload data to thingspeak channel and I want the data to be displayed on my website after login. I have succesfully completed the first part of uploading the data to thingspeak. Any suggestions with second part will be very much appreciated.
Helmut
Helmut
Última actividad el 20 de Ag. de 2024

Hi,
I tried several times to clear my channel data.
I would expect, when I click on Channel settings-clear channel all data from the channel is gone.
For me the data stay in. Delete channel works fine.
Is there a trick?
many thanks for your help
HEP
I'm almost embarressed enough to not ask this. :) I assumed sorting the "Updated" column in the "My Channels" view would sort my channels based on when data was last written to (last updated to) the channel
However, I have channels that have received date in August and yet the date/time stamp in the Uodated column displays a June date and therefore they sort in the wrong order. Does "update" mean something other than a data update, such as a settings update? If so, if there a way to sort the channels by the more recent data update?
Daniel Bending
Daniel Bending
Última actividad el 20 de Ag. de 2024

Hi All,
I'm currently verifying a global sensitivity analysis done in SimBiology and I'm a touch confused. This analysis was run with every parameter and compartment volume in the model. To my understanding the fraction of unexplained variance is 1 - the sum of the first order variances, therefore if the model dynamics are dominated by interparameter effects you might see a higher fraction of unexplained variance. In this analysis however, as the attached figure shows (with input at t=20 minutes), the most sensitive four parameters seem to sum, in first order sensitivities to roughly one at each time point and the total order sensitivies appear nearly identical. So how is the fraction of unexplained variance near one?
Thank you for your help!
With a deployment of ThingSpeak on August 15th, 2024, we are using a new library for visualization of ThingSpeak channel charts. This should require no changes on your part. If you notice any discrepancies/differences in your channel visualization, please post a screenshot on this thread.
Due to API changes at X, formerly known as Twitter, the integration between ThingSpeak and X, specifically the ThingTweet functionality, was not operational for a number of months. As of August 1st, 2024, the ThingTweet functionality is being deprecated.
The alternative, which requires manual steps due to X requiring manual application for a developer account, is to use the TWITTER function from Datafeed toolbox in MATLAB code. You can then create a React that is associated with this MATLAB code to post to X.
I use "x = ThingSpeak.writeFields(myChannelNumber1, myWriteAPIKey1);" in my code to update the ThingSpeak channel. 4 fields are associated with this channel. This statement is executed about once every 5 minutes.
Roughly 60% of the time, I got an error message "HTTP error code -301". The other 40% of time the channel update is successful. What does the "HTTP error code -301" mean? Any suggestion on how to improve the success rate of the channel update
Problem statement: I've written a visualization that I'd like to use on potentially hundreds of different channels in my commerical account. Because it contains code that's unique to the channel (channel id, read API key, etc.) I have to create and maintain a duplicate visualization for each channel. This is wasteful, a source of errors, and almost intractable for a commercial customer with a high channel count.
My request is that MATLAB Visualizations be extended to support parameters, but only a predefined set to reduce the scope. I would propose a subset of the parameters currently supported by the ThingSpeak API. For example, thingSpeakRead supports (requires) readChannelID, NumPoints, and a ReadKey etc. If those were elevated to also be allowed as Visualization parameters, I imagine it would satisfy a large subset of user needs.
The poor man's version of this would be if ThingSpeak supported just one special parameter, such as %CHANNEL_ID%. If this was available within the visualization code one could use it as a key into table to get the other pieces of data like API keys, etc. It would be have to be passed on the visualization url (https://thingspeak.com/apps/matlab_visualizations/573779?readChannelID=xxxxx). Not sure how the visualization would pick it up in the use case where it's called from the ThingSpeak website under the user's list of MATLAB Visualizations. Perhaps it can be prompted for.
I initially considered user defined functions or libraries but they are not supported and I can see that that would require even more development work to support. The workarounds described in this thread aren't suitable for me. https://www.mathworks.com/matlabcentral/answers/2102981-how-to-use-private-functions-lib-in-thingspeak?s_tid=srchtitle_community_thingspeak_14_libraries
thanks!
Tom
how can I link a chinese flow meter to this website
Klaus
Klaus
Última actividad el 8 de Jul. de 2024

Die Anzeige der Werte in den einzelnen Feldern ist nicht aktuell.
So werden z.B. um 18:00 Uhr nur die Werte bis 14:00 Uhr angezeigt, auch das verändern des Zeitfensters bringt keine Abhilfe.
Hat jemand eine Idee wie ich die der Uhrzeit ensprechenden Werte zur Anzeige bringe.
Die Werte werden von Shellies und BitShake kontinuierlich übertragen.
Marsheela Matius
Marsheela Matius
Última actividad el 25 de Jun. de 2024

My thingSpeak channel kept on updateing the same signal as early eventhough my simulink have update the new signal. How to solve this?
Hi ThingSpeak Community,
I hope you are all doing well.
I am currently setting up a Vodafone ACL for a SIM card that will be used in a device destined for a remote charity deployment in a week. The goal is to ensure that the device can reliably upload data to ThingSpeak without any connectivity issues.
Here are the details of my current ACL setup:
  • FQDN: api.thingspeak.com (specified as the API endpoint)
  • IPv4 Address: 184.106.153.149 (found online)
  • Port: (left empty)
I've attached a photo of the setup for reference.
Could you please confirm if the above ACL settings are correct? Additionally, if there are any other considerations or settings I should be aware of for ensuring reliable connectivity with ThingSpeak, I would greatly appreciate your guidance.
Currently, all I am using for the device credentials is the PIN number. Do I need to adjust any settings in the Arduino code or the ACL to maintain stable connectivity with ThingSpeak, especially considering the device will be in a remote location and difficult to access for adjustments?
Your prompt assistance and advice will be immensely valuable, as I want to ensure everything is correctly configured before deployment.
Thank you very much!
Best regards,
Arthur
Hi to everyone!
To simplify the explanation and the problem, I simulated the kinetics of an irreversible first-order reaction, A -> B. I implemented it in two independent compartments, R and P. I simulated the effect of a dilution in R by doubling at t= 0,1 the R volume. I programmed in P that, at t = 0.1, the instantaneous concentration of A and B would be reduced by half. I am sending an attach with the implementation of these simulations in the Simbiology interface.
When the simulations of the two compartments are plotted, it can be seen that the responses are not equal. That is, from t = 0.1 s, the reaction follow an exponential function in R with half of the initial amplitude and half of the initial value of k1. That is, the relaxation time is doubled. Meanwhile, in P, from t = 0.1, the reaction follows exponential kinetics with half the amplitude value but maintaining the initial value of k = 10. Without a doubt, the correct simulation is the latter (compartment P) where only the effect is observed in the amplitude and not in the relaxation time. Could you tell me what the error is that makes these kinetics that should be equal not be?
Thank you in advance!
Luis B.
Hi All,
I've been producing a QSP model of glucose homeostasis for a while now for my PhD project, recently I've been able to expand it to larger time series, i.e. 2 days of data rather than a singular injection or a singular meal. My problem is as follows: If I put 75g of glucose into my stomach glucose species any later than (exactly) 8.5 hours I get an integration tolerance error. Curiosly, I can put 25g of glucose in at any time up to 15.9 hours, then any later an error. I have disabled all connections to my glucose absorption chain, i.e. stomach -> duodenum -> jenenum -> ileum -> removal, to isolate the cause of this. I had initially thought it may be because I mechanistically model liver glycogen and that does deplete over time, but I've tested enough to show that that does nothing. My next test is to isolate the glucose absorption chain into a seperate model and see if the issue persists but I'm completely baffled!
These are the equations, to my eye there's no reason why there would be such a sharp glucose quantity/time dependence, they all begin at a value of 0:
d(Gs)/dt = -(kw*(1-Gd^14/(Igd^14+Gd^14))*Gs) #Stomach glucose
d(Gd)/dt = (kw*(1-Gd^14/(Igd^14+Gd^14))*Gs) - (kdj*Gd) #Duodenal Glucose
d(Gj)/dt = (kdj*Gd) - (kji*Gj) #Jejunal Glucose
d(Gi)/dt = (kji*Gj) - (kic*Gi) #Ileal Glucose
(The sigmoidicity of gastric emptying slowing term (^14) was parameterised off of paracetamol absorption data and appears to be correct!)
Thank you for your help, best regards,
Dan
Pre-Edit: I changed the run time to 30 hours and now I can't use the 75g input any later than 7.9 hours not 8.5 hours anymore!
Edit: This is how it appears at all times prior to it failing for 75g: