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

2 次查看(过去 30 天)
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?

采纳的回答

Stephen23
Stephen23 2019-3-4
编辑:Stephen23 2019-3-4
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Structures 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by