How can I get matlab to execute one or both parts of a code depending on whether a variable exists?

1 vue (au cours des 30 derniers jours)
I want to define a cell of data from a particular file if that particular file exists and a different cell of data if a different file exists. Sometimes both files will exist and sometimes only one. I then want to perform some operations on the cell(s) that exist, but a different operation on each existing file. I.e. I might have cell1 and cell2 or I might just have cell1 or just cell2. There will be a set of operations to perform if cell1 exists and a different set of operations to perform if cell2 exists, and if both exist I want to perform both sets of operations. What sort of structure would be best to do this?

Réponse acceptée

Stephen23 le 4 Mar 2019
Modifié(e) : Stephen23 le 4 Mar 2019
Avoid checking if variables exist or not (such introspective programming is a path to slow, complex, spaghetti code which is difficult to debug). The clearest code would explicitly indicate if that data has been loaded or not, for which a simple cell array or structure is quite sufficient:
S = struct('data',{[],[]},'loaded',{false,false})
S(1).data = ... optionally import file one.
S(1).loaded = true;
S(2).data = ... optionally import file two.
S(2).loaded = true;
if S(2).loaded % check if file two data has been loaded
S(2).data % do something ...
[S.loaded] % check if all files have been loaded

Plus de réponses (0)


En savoir plus sur Workspace Variables and MAT-Files dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by