Exporting matrices from function to cell array
2 次查看(过去 30 天)
显示 更早的评论
Hello all,
So I am trying to process some images. The function reads the image and stores it internally in a variable called avg ( as a matrix). And since this is happening inside the function I can not access tha variable avg.
So I did a little research and found assigin() function. However, I have tried to store these matrices in a cell array that I have opened in the testFunction file, which is not the function file ( I just call the function from this file), but the cell array remains empty.
This is my empty cell array function
CesarelliFlt_img = {};
This is my assignin() function
assignin('base','CesarelliFlt_img',avg);
Yes I know that this will only store the last value since there is no for loop. So I did this
assignin('base',CesarelliFlt_img{k},avg);
This now returns a CesarelliFlt_img cell file with 0X0 .
k is my for loop variable in that the filter function uses to go through the images.
What might seem to be the problem? I feel I am not using assignin right , specially the variable name section.
Thanks in advance.
2 个评论
Mathieu NOE
2021-3-11
hello
why not simply make the variable avg accessible as one output argument of the function ?
Stephen23
2021-3-12
"And since this is happening inside the function I can not access tha variable avg."
Sure you can: a simple output argument lets you do that, much simpler and more efficient than your approach.
回答(1 个)
Jan
2021-3-11
Using assignin suffers from the same problems as eval. See https://www.mathworks.com/matlabcentral/answers/304528-tutorial-why-variables-should-not-be-named-dynamically-eval
Use an output argument to provide variables to the caller.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Install Products 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!