MATLAB: Different ways of specifying arguments in build-in Matlab commands

build-in matlab commands

Hi,
I have got a quick questions, it probably a really stupid one but I just can't grasp my head around it… In Matlab it seems that it is possible to call a build-in matlab command with arguments in two different ways. The first one is just by sepcifiying the arguments in the functions
scatter(x,y,sz,'d')
The second method is by using strings to kind of 'announce' to the function that the necessary arguments are coming
scatter(x,y,sz,'MarkerEdgeColor',[0 .5 .5],...
'MarkerFaceColor',[0 .7 .7],...
'LineWidth',1.5)
Why is it not possible to just do
scatter(x,y,sz,[0 .5 .5],[0 .7 .7],1.5)

Best Answer

Because
scatter(x, y, sz, 'LineWidth', 1.5, 'MarkerFaceColor', [0 .7 .7], 'Parent', gca, 'MarkerEdgeColor',[0 .5 .5])
is also valid. Name/Value pairs can occur in any order, and are (often) optional, so scatter would have no way of knowing that
scatter(x,y,sz,[0 .5 .5],[0 .7 .7],1.5)
was not intended to mean
scatter(x, y, sz, 'MarkerFaceColor', [0 0.5 0.5], 'MarkeEdgeColor', [0 0.7 0.7], 'Parent', 1.5)