how to remove columns from a 3D array, considering user input
3 views (last 30 days)
Show older comments
Hello,
I have a 3D matrix A, with dimensions 50*1000*30. I would like to remove some columns of the 30 I have (3rd dimension). The columns that I would like to have removed should be defined by user input, separated by commas. An example of an acceptable input is 1,5,7,9
for the removal of the columns 1, 5, 7 and 9 of all of the 50 tables. I know the input can be coded in something like this:
columns= input('Please write the number of the columns to be removed, separated by commas')
However, I don't know how I can obtain a new matrix, let's call it B, with the columns stated as input (variable columns) removed.
Any suggestions on how to do this?
I thank you in advance,
Best regards,
0 Comments
Accepted Answer
Jan
on 25 Feb 2022
Edited: Jan
on 25 Feb 2022
Either use square brackets for the input:
b = input('Indices enclosed in square brackets: ');
% Type in: [1,5,7]
Or input a string and convert it manually:
s = input('Indices, comma separated: ', 's');
s = strrep(s, ',', ' ');
b = sscanf(s, '%d');
% b = [1,5,7]
Then:
A = rand(50, 1000, 30);
A(:, :, b) = [];
% Or do you mean the 1st dimension?
% A(b, :, :) = [];
0 Comments
More Answers (0)
See Also
Categories
Find more on Logical 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!