Searching for minimum x root for known y
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Panos Katsa
am 20 Feb. 2020
Kommentiert: Panos Katsa
am 20 Feb. 2020
Hello. I am beginner with matlab and I'm getting confused so I would like some help.
I have the equation y = -0,1042x^5 + 1,9167x^4 - 13,062x^3 + 39,333x^2 - 45,083x + 21 and I have also inserted a matrix of 8760 y values.
I want to build a table that displays the minimum root of x every time for given y values.
Any help?
3 Kommentare
Alex Mcaulley
am 20 Feb. 2020
Bearbeitet: Alex Mcaulley
am 20 Feb. 2020
For each value in y you can obtain the roots using roots function and then take the minimum value using min
Hints:
- for loop might be useful
- read the documentation of roots
Akzeptierte Antwort
the cyclist
am 20 Feb. 2020
This code finds the minimum root, for y == 43.
y = 43;
p = [-0.1042 1.9167 13.062 39.333 45.083 21-y];
min(roots(p))
You'll need to run a loop over your values of y.
5 Kommentare
the cyclist
am 20 Feb. 2020
Bearbeitet: the cyclist
am 20 Feb. 2020
Here is one way to convert from table to numeric. I also documented what the prior code was doing.
% Create a variable y that is a table (where the variable *inside* the table is also named
% "y"). You should use your real data here instead
y = table([22; 44],'VariableNames',{'y'});
% Convert it to numeric
y_numeric = table2array(y);
% Get the number of values
y_count = numel(y_numeric);
% Preallocate the array for the minimum values
minValues = zeros(y_count,1);
% Loop over each value of y, and store the minimum root
for iy = 1:y_count
p = [-0.1042 1.9167 13.062 39.333 45.083 21-y_numeric(iy)];
minValues(iy) = min(roots(p));
end
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Data Import from MATLAB finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!