APP DESIGNER. How can I use a variable generated by one function in another funcion?

1 view (last 30 days)
I have this function in App Designer:
function LoadButtonPushed(app, event)
% Display uigetfile dialog
[fn p] = uigetfile('*.dcm','MultiSelect','on'); %#ok
dicom_files = {};
for file = 1:length(fn)
str_temp = string(fn(file));
dicom_files = [dicom_files dicomread(str_temp)]; %#ok
end
end
And I want to be able to use the variable dicom_files on this function:
function Slices_value(app, event)
value = app.SlicesSpinner.Value;
if exist(value, 'var') == 1
imshow(uint8(dicom_files{value}), [], 'parent', app.ImageAxes);
end
end
How should I do it? The code does not recognise dicom_files in the second function

Accepted Answer

Mohammad Sami
Mohammad Sami on 8 Jul 2020
You need to create an app property dicom_files to store the values in.
Change to code view, click the property button, click public property. Type the name of the property dicom_files.
After that you can change your two functions to update this value
function LoadButtonPushed(app, event)
% Display uigetfile dialog
[fn p] = uigetfile('*.dcm','MultiSelect','on'); %#ok
dicom_files = {};
for file = 1:length(fn)
str_temp = string(fn(file));
app.dicom_files = [app.dicom_files dicomread(str_temp)]; %#ok
end
end
function Slices_value(app, event)
value = app.SlicesSpinner.Value;
if exist(value, 'var') == 1
imshow(uint8(app.dicom_files{value}), [], 'parent', app.ImageAxes);
end
end

More Answers (0)

Community Treasure Hunt

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

Start Hunting!