Matrix manipulation such as subtraction

2 ビュー (過去 30 日間)
Elvin
Elvin 2013 年 12 月 19 日
コメント済み: Elvin 2013 年 12 月 19 日
Can I ask for some help regarding matrix manipulation? Here's what I'm after. Let's say for example I have two arrays:
A = [2 3 4 5]
B = [0 1 2 3 4 5 6 7 8 9]
The output that I want is a cell containing an answer like this:
C{1} = [2-0 3-0 4-0 5-0]
C{2} = [2-1 3-1 4-1 5-1]
.
.
.
C{10} = [2-9 3-9 4-9 5-9]

採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 12 月 19 日
編集済み: Azzi Abdelmalek 2013 年 12 月 19 日
A = [2 3 4 5] ;
B = [0 1 2 3 4 5 6 7 8 9];
out=arrayfun(@(x) A-x,B,'un',0);
celldisp(out)
%or
A = [2 3 4 5];
B = [0 1 2 3 4 5 6 7 8 9];
out1=bsxfun(@minus,A,B')
out=num2cell(out1,2);
celldisp(out)
  9 件のコメント
Azzi Abdelmalek
Azzi Abdelmalek 2013 年 12 月 19 日
out1={1:6 11:16}
out2={2:7 12:17}
out3={3:8 13:18}
out=cellfun(@(x,y,z) sqrt(x.^2+y.^2+z.^2),out1,out2,out3,'un',0)
Elvin
Elvin 2013 年 12 月 19 日
Thank you very much for the help :D

サインインしてコメントする。

その他の回答 (1 件)

José-Luis
José-Luis 2013 年 12 月 19 日
Faster:
your_mat = repmat(A,numel(B),1)-repmat(B',1,numel(A));

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by