Loop on two matrices
조회 수: 2 (최근 30일)
이전 댓글 표시
I have these two matrices:
TL=[ 21;36;31;8;34;22;14;34;4;51]
TTB=[207;92;133;1;99;1;127;197;228;42]
I want to create a vector that takes eache value of TTB ans repeat it for Tl(i) time; also each time it should ad a +1.
for exemple: 207 should be added in a matrice lets name it A, 21 times as A(1)=207, A(2)=208, A(3)=209......A(21)=207+21
i hope it is clear ;
thank you
채택된 답변
Jan
2021년 2월 2일
편집: Jan
2021년 2월 2일
TL = [ 21;36;31;8;34;22;14;34;4;51];
TTB = [207;92;133;1;99;1;127;197;228;42];
C = cell(1, numel(TL));
for k = 1:numel(TL)
C{k} = TTB(k) + (0:TL(k)-1);
end
Result = [C{:}];
[EDITED] A one-liner version:
Result = cell2mat(cellfun(@(a, b) a + (0:b-1), ...
num2cell(TTB), num2cell(TL), 'uniformoutput', 0).');
I'd prefer the loop, because it is easier to read.
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!