save data from function to ws
1 次查看(过去 30 天)
显示 更早的评论
Hello,
I want to save the data of a 8x1 matrix to the workspace from a function. However, the variables in the matrix change every time the function is called, while the name of the Matrix stays the same.
I tried assignin. This works well but now I want to create a matrix consisting of a row of 8x1 variables. I actually want the following;
assignin('base','Pars2(end+1,:)',Pars)
But this doesnt work.
Can anybody help me? Thanks in advance!
Greetings Boudewijn
0 个评论
采纳的回答
Iain
2014-2-20
You have three options.
1. Use evalin or assignin correctly to put the variable into the base workspace.
2. Change your function to a script, and just directly work in the calling workspace.
3. Return everything you want your function to return, as an argument.
e.g.
function [cosine_result, sine_result, tangent_result] = trigfcns(angles)
cosine_result = cos(angles);
sine_result = sin(angles);
tangent_result = cosine_result ./ sine_result;
Then call your function like:
[cosses, sines, tans] = trigfcns([45 31 91 64]*pi/180);
From a programming quality/best practice point of view, the advice would be to just use the 3rd option. - Using varargout & nargout as ways of not returning optional output.
更多回答(1 个)
Dishant Arora
2014-2-20
As the documentation suggests, 2nd parameter has to be only the variable name, it cannot have any indices. Better assign that value to a new variable in workspace and later on add it to existing matrix.
assign('base' , 'newVar', val);
existingMat(end+1,:)=newVar;
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!