Set and read matrix from 'setenv'
Show older comments
Dear,
I have some medium input matrices that frequently change as program input. I want to move them out to external file by using 'setenv' or similar. Is that possible ? or any alternative way ?
Many thanks,
-Dan
Answers (1)
Guillaume
on 18 Dec 2018
It sounds like you have a script where all the inputs are hardcoded. First, convert the script into a function with the appropriate inputs and outputs.
E.g. If you have a script like:
%inputs
something = [1 2;3 4];
somethingelse = [10 20; 30 40];
%processing code
someresult = something . ^ 2;
someotherresult = something + sqrt(somethingelse);
then it becomes:
function [someresult, someotherresult] = dosomething(something, somethingelse)
someresult = something . ^ 2;
someotherresult = something + sqrt(somethingelse);
end
After that it's up to you how you get the various inputs to the function. You could write a script will all the inputs and loop over them:
%all the matrices to process
manysomething = {[1 2;3 4], [5 6;7 8], [9 10 11; 12 13 14]};
manysomethingelse = {[10 20; 30 40], [50 60; 70 80], [90 100 110; 120 130 140]};
%preallocate results:
manyresults = cell(size(manysomething));
manyotherresults = cell(size(manysomething));
%loop over inputs
for idx = 1:numel(manysomething)
[manyresults{idx}, manyotherresults{idx}] = dosomething(manysomething{idx}, manysomethingelse{idx});
end
Or you can get these inputs from text file, from spreadsheets, or from a GUI.
Categories
Find more on MATLAB in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!