problem with sum in function
1 回表示 (過去 30 日間)
古いコメントを表示
Hello every one!
I am new with matlab and i have a problem with very simple program with matlab 2019a
Code 1:
clear all;
z=so;
function [s] = so
A=[1 5 3 4 2 10 21 65];
s = sum(A);
s = s+1;
end
The answer is z=112, it's correct
Code 2:
clear all;
A=[1 5 3 4 2 10 21 65];
z=so;
function [s] = so
s = sum(A);
s = s+1;
end
I get this error

So as far as i understand, "Sum" can not read the variable out of the function "so".
DId i do somethings wrong or my computer have issues?
It's just a little test, but i need to get work with "sum" in a function so I can write a bigger program.
0 件のコメント
採用された回答
Steven Lord
2020 年 4 月 22 日
Variables from outside the function generally only enter a function's workspace when passed as input arguments to the function.
Variables from inside the function generally only leave the function's workspace to enter a different workspace when returned from the function as an output argument.
Functions generally can't access variables outside their own workspace.
[Those rules aren't technically complete, but when you're starting out they're a good mental model to use as a starting point for your MATLAB knowledge.]
In your first example you created the variable A inside so's workspace so the so function has access to the A variable. Since you didn't return A from so, A is not added to the workspace from which so was called when the so function returns.
In your second example you created A outside so's workspace and didn't pass it in as an input, so the so function doesn't have access to the A variable.
その他の回答 (1 件)
Fangjun Jiang
2020 年 4 月 22 日
You are right. All you need to do is "function [s] = so(A)" to pass in the value of A.
2 件のコメント
Steven Lord
2020 年 4 月 22 日
You're not a fool. You said you're new with MATLAB, and that means there are things you don't know. That's how everyone, with the possible exception of Cleve, started out. And Cleve is a bit of a special case, being the author of the first version of MATLAB.
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!