Receiving two outputs in function

1 view (last 30 days)
Sharanya
Sharanya on 10 Dec 2022
Answered: Stephan on 10 Dec 2022
I want both the nodeCrd and edgeList to display, but I'm only able to get the first one listed to display.
function [nodeCrd,edgeList]=ReadInputData()
filename="inputdataa.txt";
fileId = fopen(filename,"r");
if (fileId == -1)
disp("Could not open the file !")
return
end
% read the first line
tempLine = fgetl(fileId);
disp(tempLine)
% read the second line
tempLine = fgetl(fileId);
disp(tempLine)
% there is a pattern here (node's coordinates + IsSupport)
data = textscan(fileId,"%f %f %f %f %f %d");
% convert it to array
nodeCrd = cell2mat(data(1:5));
% pattern is finished at this line
% let's read that line
tempLine = fgetl(fileId);
disp(tempLine)
% there is another pattern here (memebrs)
data = textscan(fileId,"%f %f %f" );
% convert it to array
edgeList = cell2mat(data);
end

Answers (1)

Stephan
Stephan on 10 Dec 2022
To get multiple outputs from a function, you have to call it with multiple output arguments:
[MY_nodeCrd,MY_edgeList]=ReadInputData()

Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!