MATLAB: What this matlab syntax var1= input.var2 corresponds to

MATLABmatlab function

Hello, i'm beginner in matlab and i'm asking for help, can someone tell me the signification of this matlab syntax ?
function [output1, output2] = BagOfWords(input, mode, geneIndex, dataForCurrentGene)
switch mode
case 'init'
data = input.data;
nGenesOverall = input.nGenes;
nFeatures = input.nFeatures;
maxNumberOfComponents = input.maxNumberOfComponents;
sparseMatrix = zeros(nGenesOverall,nFeatures);
sparseVector = false(1,nGenesOverall);
% Define the cluster structure
clusterStruct(1,maxNumberOfComponents) = struct(...
'nFeatures', [], ...
'nGenesOverall', [], ...
'beta', [], ...
'sumBeta',[],...
'nGenes', [], ...
'logMarginalLikelihood', [],...
'dataCounts', [], ...
'logicalGeneIDs', [], ...
'N', []);
I didn't understand if input is a simple argument of the function BagOfWords or it refers to requesting user input? Else, what do these instructions (example: nGenesOverall = input.nGenes ) mean ?

Best Answer

Regarding this segment of code
BagOfWords(input, mode, geneIndex, dataForCurrentGene)
Everything inside the parenthesis is an input argument to the function BagOfWords. In the case of this funtion, input is a structure array. The dot notation references data in different fields of that array. For example:
input.nGenes follows the form struct.field
Since you are new to MATLAB, the above example is just a primer. I would encouage you to read through some of the documentation or look into Onramp to learn more about the syntax.