Subtracting two matrices of different size element by element

1 次查看(过去 30 天)
Hi every one
is there any way how to subtradt two matrices of different dimension let say A=ones(40) and B=ones(12)
How can we perform subtraction like S=A-B.
Thanks

采纳的回答

Azzi Abdelmalek
Azzi Abdelmalek 2013-2-21
% ----------your data-------
x=magic(4);
y=magic(2);
%-----------The code-----------
[n,m]=size(x);
[n1,m1]=size(y);
z=zeros(n,m);
z(1:n1,1:m1)=y
out=x-z
  2 个评论
rana Banik
rana Banik 2014-9-13
编辑:Image Analyst 2014-9-13
doesn't work! I have this function to perform.
distance=IMM-c;
>>whos
IMM= 132x116x2 double
c= 132x348x2 double
I have also performed bsxfun command but each time command window says error in array mismatch!!! have any other way ??
Image Analyst
Image Analyst 2014-9-13
Azzi's method does not subtract the entire arrays - that is impossible. You either have to resize one of them like I suggested in my answer, or just subtract some overlapping part, like Azzi's answer which the original poster accepted. rana, for your situation you need to subtract only the first 116 columns
distance = IMM - c(:,1:size(IMM, 2), :);
It would be more robust to actually take the minimum of each dimension of the two arrays to determine the ending row, column, and third dimension.

请先登录,再进行评论。

更多回答(1 个)

Image Analyst
Image Analyst 2013-2-21
Not unless you resize one of them. But actually we'd need an actual example with actual arrays so we can understand your thought process. Please give us an example where it does exactly what you want and we can maybe tell you how to achieve that.
  3 个评论
Thorsten
Thorsten 2013-2-21
It would be helpful if you give an example, e.g., what should be the result of
[1 2 3] - [4 5]

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by