[~,ix]=max(max(A));
B=A(:,ix);
Too bad there's no way to return the alternate return values as function result or could manage in one line/anonymous function. MATLAB syntax here requires the temporary variable.
NB: max(max()) uses default behavior of max (and most other MATLAB functions) to operate by column by default -- hence the inside max() returns a row vector of column max'es; the second then returns the location of the max in that vector--the desired column of the overall max in the array.
One could find the overall maximum location via
>> [~,i]=max(A,[],'all','linear')
i =
13
>> [~,i]=max(A(:))
i =
13
>>
but one then would need to convert that linear location back to row, column by ind2sub
>> [r,c]=ind2sub(size(A),i)
r =
1
c =
5
>>
requiring yet another temporary since the column is the second output form ind2sub