Undefined function or variable 'a'.
Afficher commentaires plus anciens
My current problem refers to the below script and function.
clear;
for x=100:145
assfunct1(x);
fprintf('x: %d, a: %d, b: %d, c: %d\n', x, a, b, c);
end;
&
function [a,b,c] = assfunct1(x)
if x<0 || fix(x) ~=x;
disp('error, input is not a non negative integer')
return
end
for a=1:x
b=sqrt(5*a^3);
c=sqrt((a+b)^2);
end
[a,b,c]
end
>> Assignment1
ans =
1.0e+03 *
0.1000 2.2361 2.3361
Undefined function or variable 'a'.
Error in Assignment1 (line 4)
fprintf('x: %d, a: %d, b: %d, c: %d\n', x, a, b, c);
Been trying for hours to work where I have erred, ty for any help you can offer.
3 commentaires
Image Analyst
le 3 Mai 2016
You forgot to give the code for assfunct3(). You only gave it for assfunct1().
And can we assume that the code starting with "clear" is in a separate m-file, and not below assfunct1() definition in the same file?
Scott
le 4 Mai 2016
CS Researcher
le 4 Mai 2016
I answered this a few days back and as John correctly pointed out you should do this:
clear;
for x=100:145
[a,b,c] = assfunct1(x);
fprintf('x: %d, a: %d, b: %d, c: %d\n', x, a, b, c);
end;
Réponse acceptée
Plus de réponses (1)
Jan
le 3 Mai 2016
You have to catch the outputs of the function:
for x = 100:145
[a, b, c] = assfunct3(x);
fprintf('x: %d, a: %d, b: %d, c: %d\n', x, a, b, c);
end
Note that the values of b and c are overwritten in each iteration:
for a = 1:x
b = sqrt(5*a^3);
c = sqrt((a+b)^2);
end
[a,b,c]
What is your intention?
Catégories
En savoir plus sur Programming dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!