problem using matrix indexing with bsxfun.
조회 수: 1 (최근 30일)
이전 댓글 표시
I'd like to calculate only A(a)*B(b), while keeping the original format of bsxfun(@times,A,B)
>> A=[-1 2 -3;4 -5 6;-7 8 -9];
B(:,:,1)=[-1 2 -3;4 -5 6;-7 8 -9];
B(:,:,2)=[-1 2 -3;4 -5 6;-7 8 -9];
bsxfun(@times,A,B)
ans(:,:,1) =
1 4 9
16 25 36
49 64 81
ans(:,:,2) =
1 4 9
16 25 36
49 64 81
>> a=A<0;b=B<0;
>> bsxfun(@times,A(a),B(b))
Error using bsxfun
Non-singleton dimensions of the two input arrays
must match each other.
댓글 수: 0
채택된 답변
Matt J
2013년 10월 31일
편집: Matt J
2013년 10월 31일
I'd like to calculate only A(a)*B(b)
Have you checked what A(a) and B(b) look like? They are both vectors of different sizes so A(a)*B(b) has no clear definition,
>> A(a)
ans =
-1
-7
-5
-3
-9
>> B(b)
ans =
-1
-7
-5
-3
-9
-1
-7
-5
-3
-9
If you want all combinations of products A(a(i))*B(b(j)), you don't need bsxfun at all. It's just an outer product calculation,
A(a)*B(b).'
If this is not what you want, then you need to clarify what the final result should look like.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!