Error message: Too many input arguments

17 次查看(过去 30 天)
I want to round the results to 4 numbers after the decimal point, but when I run, i get the following error messages like image below:
syms A1 B1 A2 B2 A3 B3 A4 B4
eq1 = A1*log(4)+B1==341;
eq2 = A4*log(10)+B4==0;
eq3 = A1*log(6)+B1==6*A2+B2;
eq4 = 7*A2+B2==A3*(49/2)+B3;
eq5 = 32*A3+B3==A4*log(8)+B4;
eq6 = A1/600-A2/6==0;
eq7 = A2-A3==0;
eq8 = A3/8-A4/8000==0;
eq = [eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8];
var = [A1, B1, A2, B2, A3, B3, A4, B4];
[A1, B1, A2, B2, A3, B3, A4, B4] = solve(eq, var)
matr = [A1 B1 A2 B2 A3 B3 A4 B4];
result = round(matr,4)

采纳的回答

Alberto Cuadra Lara
Maybe the round function was not compatible with symbolic variables on previous version.
Try this approach:
  1. Convert matr to float using vpa
  2. Use round function
syms A1 B1 A2 B2 A3 B3 A4 B4
eq1 = A1*log(4)+B1==341;
eq2 = A4*log(10)+B4==0;
eq3 = A1*log(6)+B1==6*A2+B2;
eq4 = 7*A2+B2==A3*(49/2)+B3;
eq5 = 32*A3+B3==A4*log(8)+B4;
eq6 = A1/600-A2/6==0;
eq7 = A2-A3==0;
eq8 = A3/8-A4/8000==0;
eq = [eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8];
var = [A1, B1, A2, B2, A3, B3, A4, B4];
[A1, B1, A2, B2, A3, B3, A4, B4] = solve(eq, var);
matr = [A1 B1 A2 B2 A3 B3 A4 B4];
result = vpa(matr, 32);
result = round(result, 4)
result = 
  1 个评论
Quy Hoang
Quy Hoang 2022-4-23
The old error still appears. I replaced the last command and it run:
fprintf('%0.4f\n',matr)
Thanks for your help!

请先登录,再进行评论。

更多回答(2 个)

Alberto Cuadra Lara
Hi Quy!
What version of MATLAB are you using? Your code works in MATLAB 2021b
syms A1 B1 A2 B2 A3 B3 A4 B4
eq1 = A1*log(4)+B1==341;
eq2 = A4*log(10)+B4==0;
eq3 = A1*log(6)+B1==6*A2+B2;
eq4 = 7*A2+B2==A3*(49/2)+B3;
eq5 = 32*A3+B3==A4*log(8)+B4;
eq6 = A1/600-A2/6==0;
eq7 = A2-A3==0;
eq8 = A3/8-A4/8000==0;
eq = [eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8];
var = [A1, B1, A2, B2, A3, B3, A4, B4];
[A1, B1, A2, B2, A3, B3, A4, B4] = solve(eq, var);
matr = [A1 B1 A2 B2 A3 B3 A4 B4];
result = round(matr, 4)
result = 
  1 个评论
Quy Hoang
Quy Hoang 2022-4-23
编辑:Quy Hoang 2022-4-23
I'm using Matlab 2017b. Do you have an alternative command to make it run?

请先登录,再进行评论。


Jan
Jan 2022-4-23
result = round(matr * 10000) / 10000

类别

Help CenterFile Exchange 中查找有关 Symbolic Math Toolbox 的更多信息

产品


版本

R2017b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by