subtracting matrices in a special way
이전 댓글 표시
a = randi(50,600,9);
mx = randi(50,60,1);
q = bsxfun(@minus,reshape(a(:,7),10,[]),mx);
q = reshape(q,[],1);
After reshaping and cutting the variable 'a' into 10 blocks I want the first mx value to be subtracted from the first block of ten, the second mx value from the second block of 10, the third mx value from the third block of 10 and so on.... How can I implement these changes in my bsxfun function?
thanks
댓글 수: 7
Azzi Abdelmalek
2014년 12월 1일
What is the problem with your code?
AA
2014년 12월 1일
Azzi Abdelmalek
2014년 12월 1일
This is not clear for me
Stephen23
2014년 12월 1일
After dividing every tenth a value, what happens after mx(10), when there are still 500 a values remaining but no mx values left? Ten blocks of ten makes 100 values, but a(:,7) contains 600... please advise us on what should happen with these remaining values!
AA
2014년 12월 1일
Stephen23
2014년 12월 1일
PS: Is there a purpose to creating a huge array a and then using only the seventh column from it?
채택된 답변
추가 답변 (1개)
Andrei Bobrov
2014년 12월 1일
편집: Andrei Bobrov
2014년 12월 1일
a = randi(50,600,9);
mx = randi(50,60,1);
a7 = reshape(a(:,7),10,[]);
out0 = bsxfun(@minus,a7,mx(:)');
out = out0(:);
or
out = a(:,7) - mx(ceil((1:size(a,1))/numel(mx)));
카테고리
도움말 센터 및 File Exchange에서 SimEvents에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!