# How do I remove any Column in a matrix

49 views (last 30 days)
Cutie on 14 Jan 2021
Commented: Cutie on 14 Jan 2021
Please what is wrong with this function. I want it to remove 'n' column form the matrix A
function B = column_removal(A,n)
A1= A(:,1:n-1) % Index from column 1 to column 'n-1'
A2 = A(:,n+1:end) % Index from column 'n+1' to the last co1umn
B = [A1 A2] % concatenate A1 & A2 by which the n column would have been removed
end
Cutie on 14 Jan 2021
Thank you, but how do I assign the above output to a variable.

Matt J on 14 Jan 2021
Edited: Matt J on 14 Jan 2021
Nothing is wrong with the code you've posted, but it would be simpler to do,
B=A(:,[1:n-1,n+1:end]);
or, slightly less efficiently,
B=A;
B(:,n)=[];
Cutie on 14 Jan 2021
I wanted to but the 'Accept answer' is not there. That's why I voted it,

ercan duzgun on 14 Jan 2021
Dear Cutie,
Your MATLAB function already works fine. However, Matt J's solution is simpler.
I checked your MATLAB function by this example below, and I received the expected result.
X=[1 2 3 4 5 6; 10 20 30 40 5 60;100 200 300 400 500 600]
column_removal(X,3)
A1 =
1 2
10 20
100 200
A2 =
4 5 6
40 5 60
400 500 600
ans =
1 2 4 5 6
10 20 40 5 60
100 200 400 500 600
Cutie on 14 Jan 2021
Thank you.