Delete a column from an array of uncertain size?
Ältere Kommentare anzeigen
Hi everyone.. I know there are answers out there regarding removing a column from an array with x dimensions--this much I have no problem doing.
I'm trying to turn some code into a function that I can use to solve the same type of problem with anywhere from 2 to 7 dimensions (or infinite, if I can write a general enough code).
What I have to do, in a certain part of the code, is take an array of grid points and drop the first point on the second dimension.
E.g. if it was a matrix I would write:
newarray = oldarray(:,2:end);
if it was a 4D array I would write:
newarray = oldarray(:,2:end,:,:);
What do you think the most efficient/general way to code this would be?
Thanks!
Akzeptierte Antwort
Weitere Antworten (1)
Walter Roberson
am 15 Jun. 2015
s = size(oldarray);
[r, c, p] = size(oldarray); %deliberate that 3 outputs are given for array that might be more dimensions
newarray = reshape(oldarray,r,c,p);
newarray = reshape(newarray(:,2:end,:), [r, c-1, s(3:end)]);
That is, the 3 dimensional case covers the rest.
Kategorien
Mehr zu Operators and Elementary Operations finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!