value must be a double scaler
Show older comments
so I am trying to make a cubic equation calculater in matlab but i keep getting the error :
Error using matlab.ui.control.internal.model.AbstractNumericComponent/set.Value (line 111)
'Value' must be a double scalar.
I am really not sure what it means but here is the code:
vala = app.a.Value;
valb = app.b.Value;
valc = app.c.Value;
vald = app.d.Value;
zz1 =(-valb/3*vala)-(1/3*vala)*(0.5*(2*valb^3-9*vala*valb*valc+27*vala^2*vald+sqrt(2*valb^3-9*vala*valb*valc+27*vala^2*vald)^2-(4*valb^2-3*vala*valc)^3)^0.5)^1/3-(1/3*vala)*(0.5*(2*valb^3-9*vala*valb*valc+27*vala^2*vald-sqrt(2*valb^3-9*vala*valb*valc-27*vala^2*vald)^2-(4*valb^2-3*vala*valc)^3)^0.5)^1/3;
zz2 =(-valb/3*vala)+(1+1i*sqrt(3)/6*vala*(0.5*(2*valb^3-9*vala*valb*valc+27*vala^2*vald+sqrt(2*valb^3-9*vala*valb*valc+27*vala^2*vald)^2-(4*valb^2-3*vala*valc)^3)^0.5)^1/3)+(1-1i*sqrt(3)/6*vala)*(0.5*(2*valb^3-9*vala*valb*valc+27*vala^2*vald-sqrt(2*valb^3-9*vala*valb*valc+27*vala^2*vald)^2-(4*valb^2-3*vala*valc)^3)^0.5)^1/3;
zz3 =(-valb/3*vala)+(1-1i*sqrt(3)/6*vala*(0.5*(2*valb^3-9*vala*valb*valc+27*vala^2*vald+sqrt(2*valb^3-9*vala*valb*valc+27*vala^2*vald)^2-(4*valb^2-3*vala*valc)^3)^0.5)^1/3)+(1+1i*sqrt(3)/6*vala)*(0.5*(2*valb^3-9*vala*valb*valc+27*vala^2*vald-sqrt(2*valb^3-9*vala*valb*valc+27*vala^2*vald)^2-(4*valb^2-3*vala*valc)^3)^0.5)^1/3;
app.x1.Value =zz1;
app.x2.Value =zz2;
app.x3.Value =zz3;
p.s if you know any simpler ways that would be big help
7 Comments
Rik
on 7 Mar 2021
Doesn't the error message explain what is the problem? You need to use a scalar double. That means you can only set a single value, not multiple.
What are the values of zz1, zz2, and zz3?
Mohamed Rashed
on 7 Mar 2021
Walter Roberson
on 7 Mar 2021
One of zz1, zz2, zz3 is empty, or non-scalar, or not a double .
Is that roots of a cubic ? I see you are using imaginary components. At the moment I do not know if you are permitted to set the object to complex values.
Mohamed Rashed
on 8 Mar 2021
Walter Roberson
on 8 Mar 2021
Use roots() to find roots of the cubic.
And experiment with assigning real(zz1) and so on to the fields to test out whether really it is complaining about complex values.
Mohamed Rashed
on 8 Mar 2021
Walter Roberson
on 8 Mar 2021
"puts in the polynomial x^2+x+1" -- puts in how? Are you expecting that app.b.Value will be a formula instead of a numeric value? If you are expecting a numeric value, then App Designer permits constructing a numeric edit field that does not permit arbitrary text.
Accepted Answer
More Answers (0)
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!