error: Too many output arguments

1 Ansicht (letzte 30 Tage)
Marco Barbarossa
Marco Barbarossa am 2 Sep. 2018
Kommentiert: Image Analyst am 3 Sep. 2018
my goal is to obtain a matrix A (2x2) using a function called somma:
function [] =somma (x,y)
z=x+y
my script code is :
clear all
clc
x=1:2;
y=3:4;
A=zeros(length(x),length(y));
[x1,x2]=meshgrid(x,y);
for i=1:length(x);
for j=1:length(y);
A(i,j)=somma(x1(i,j),x2(i,j));
end
end
A
the error reported is:
Error using somma
Too many output arguments.
Error in untitled5 (line 9)
A(i,j)=somma(x1,x2);

Akzeptierte Antwort

Image Analyst
Image Analyst am 2 Sep. 2018
You forgot to have somma return any value! Have it return z and it will work:
clc
x=1:2;
y=3:4;
A=zeros(length(x),length(y));
[x1,x2]=meshgrid(x,y)
for i = 1 : length(x)
for j = 1 : length(y)
A(i,j) = somma(x1(i,j), x2(i,j));
end
end
A
function [z] =somma (x,y)
z = x + y
end
  2 Kommentare
Marco Barbarossa
Marco Barbarossa am 2 Sep. 2018
now my script code is:
clear all
clc
x=1:2;
y=3:4;
A=zeros(length(x),length(y));
[x1,x2]=meshgrid(x,y);
for i=1:length(x)
for j=1:length(y)
A(i,j)=somma(x1(i,j),x2(i,j))
end
end
A
function [z] =somma (x,y)
z = x + y
end
my function code is:
function [z]=somma(x,y)
z=x+y;
end
errore reported :
Error: File: untitled5.m Line: 15 Column: 1
Function definitions are not permitted in this
context.
Walter Roberson
Walter Roberson am 2 Sep. 2018
Store the code for the function in a separate file. Having a function in a script file requires R2016b or later.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

ahmed nebli
ahmed nebli am 2 Sep. 2018
when writing the for loop it dosen't end with a ; and next the second for loop need to be under the first for loop and decaled by one tab, see syntax in this example https://www.mathworks.com/help/matlab/ref/for.html
  1 Kommentar
Marco Barbarossa
Marco Barbarossa am 2 Sep. 2018
same error message with this code:
clear all
clc
x=1:2;
y=3:4;
A=zeros(length(x),length(y));
[x1,x2]=meshgrid(x,y);
for i=1:length(x)
for j=1:length(y)
A(i,j)=somma(x1(i,j),x2(i,j));
end
end
A

Melden Sie sich an, um zu kommentieren.


Marco Barbarossa
Marco Barbarossa am 3 Sep. 2018
thanks to all! Walter Roberson is right !
  1 Kommentar
Image Analyst
Image Analyst am 3 Sep. 2018
Or, better if you can, upgrade your release to the latest version.

Melden Sie sich an, um zu kommentieren.

Tags

Produkte


Version

R2013a

Community Treasure Hunt

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

Start Hunting!

Translated by