필터 지우기
필터 지우기

Insert a blank column every n columns

조회 수: 1 (최근 30일)
Alessandro Innocenti
Alessandro Innocenti 2013년 3월 21일
댓글: minhua su 2019년 4월 18일
Hi. I have a matrix (size 10x360) and I want insert a blank column every n columns. How can I do? I have tried to use for loop, but unsuccessfully.
Thanks, Alessandro

답변 (5개)

Carlos
Carlos 2013년 3월 21일
편집: Carlos 2013년 3월 21일
Try this, if you want to insert a blank column every 5 columns
A=rand(10,360);
A=num2cell(A);
A(:,1:5:end)=cell(1);
  댓글 수: 2
Alessandro Innocenti
Alessandro Innocenti 2013년 3월 21일
It doesn't work...it deletes the column, it does not insert a blank column.
Carlos
Carlos 2013년 3월 21일
OK, I misunderstood your question, look at the file exchange function insertrows uploaded by Jos, that http://www.mathworks.com/matlabcentral/fileexchange/9984, that may do the job for you.

댓글을 달려면 로그인하십시오.


Peter
Peter 2013년 3월 21일
To insert columns with zeros you can try this:
A=rand(10,360);
n = 5;
nc = floor(360/n);
for c=1:nc;
B(:,(n*c+c-n):(n*c+c-1)) = A(:,(n*(c-1)+1):n*c);
end
If you need empty cells, you can convert your matrix to a cell array like Carlos showed before.

Andrei Bobrov
Andrei Bobrov 2013년 3월 21일
편집: Andrei Bobrov 2013년 3월 22일
yourmatrix = randi(23,10,360);
n = 6;
yourmatrix(:,n:n:end) = nan;
or
a = randi(23,10,360);% your matrix
n = 5;
s = size(a);
k = floor(s(2)/n);
n1 = k*n;
out = [reshape([reshape(a(:,1:n1),s(1),k,[]),...
repmat(nan,[s(1),1,n])],s(1),[]),a(:,n1+1:end)];
or
a = randi(32,10,360);
n = 7;
out = zeros(s+[0 floor(s(2)/n)]);
out(:,n+1:n+1:end) = nan;
out(~isnan(out)) = a;

dinesh wankhede
dinesh wankhede 2017년 2월 18일
i have matrix a with some rows and some columns i want matrix b with same number of rows but double the number of columns such that every column repeats itself

minhua su
minhua su 2019년 4월 18일
this is how i solved the problem recently
str = strings([1,508*7])
i=[]
j=1
for i=1:508
str(j)=bamfiles(i)
j=j+7
end
  댓글 수: 1
minhua su
minhua su 2019년 4월 18일
bamfiles is my original matrix, which is (size 1X508), and i create a new matrix str (the size is decided by how many every columns you want to insert)

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by