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

4 vues (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
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 ...
end
[S.loaded] % check if all files have been loaded

Plus de réponses (0)

Catégories

En savoir plus sur Matrices and Arrays 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