开发者

Cleaning up MATLAB code

开发者 https://www.devze.com 2023-02-13 03:11 出处:网络
I\'m spending quite abit of time cleaning up old MATLAB code - This function attempts to disable Java and uicomponent handles which are properties of some object - any thoughts on how to write this fu

I'm spending quite abit of time cleaning up old MATLAB code - This function attempts to disable Java and uicomponent handles which are properties of some object - any thoughts on how to write this function 'better'? Thanks

function disable(obj)
    all_props = properties(obj);
    for ii = 1:size(all_props, 1)
    开发者_运维技巧    try
            set(obj.(all_props{ii}), 'Enabled', 0)
        end
        try
            set(obj.(all_props{ii}), 'Enable', 'Off')
        end
    end
end


This all looks pretty OK, I'd personally rename the iterator variable 'ii' to something more literal (i.e. iProperty) and at the beginning of the loop, I'd put something like

property = obj.(all_props{iProperty});

to avoid the repeated code afterwards (if your objects allow this).

Instead of 'size(all_props,1)' you could also use 'numel(all_props)'. In this case (with a 1-dimensional array) the outcome is the same and it looks cleaner if you ask me.

If you'd like your code more condense and with less repetition: you can always store 'Enable' and 'Enabled' together with 0 and 'Off' in some array/struct and iterate over these values. It has both its advantages (easily extended to other field names (e.g. 'Disabled' = 1), less code duplication (try-end)) but also disadvantages (extra for loop, extra variables, ...).

0

精彩评论

暂无评论...
验证码 换一张
取 消