Multiply cell doubles with a matrix
現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
古いコメントを表示
I have a cell array A which has 1*5 cell, each cell has 12*1 doubles.
How multiply those 12*1 doubles with a MATRIX call B with 12*500 ?
Thank you
採用された回答
Andrei Bobrov
2016 年 7 月 13 日
編集済み: Andrei Bobrov
2016 年 7 月 13 日
out = bsxfun(@times,permute(cell2mat(A),[1,3,2]),B); % out - 3D double array
or
out = cellfun(@(x)bsxfun(@times,x,B),A,'un',0); % here out - cell array (1 x 5)
7 件のコメント
Mori
2016 年 7 月 13 日
Error using cell2mat (line 52) CELL2MAT does not support cell arrays containing cell arrays or objects.
or
Error using bsxfun Operands must be numeric arrays.
Error in @(x)bsxfun(@times,x,res2)
Andrei Bobrov
2016 年 7 月 13 日
編集済み: Andrei Bobrov
2016 年 7 月 13 日
Attach your cell array A.
You wrote: "I have a cell array A which has 1*5 cell, each cell has 12*1 doubles"
Small model of your "A" (let A -- cell array [1x3] each cell double [4x1]):
A = {(1:4)', (5:8)', (10:13)'};
Let B - double array [4x7]:
B = reshape(1:28,4,[]);
Then we have:
>> A = {(1:4)', (5:8)', (10:13)'};
>> B = reshape(1:28,4,[]);
>> out = bsxfun(@times,permute(cell2mat(A),[1,3,2]),B)
out =
ans(:,:,1) =
1 5 9 13 17 21 25
4 12 20 28 36 44 52
9 21 33 45 57 69 81
16 32 48 64 80 96 112
ans(:,:,2) =
5 25 45 65 85 105 125
12 36 60 84 108 132 156
21 49 77 105 133 161 189
32 64 96 128 160 192 224
ans(:,:,3) =
10 50 90 130 170 210 250
22 66 110 154 198 242 286
36 84 132 180 228 276 324
52 104 156 208 260 312 364
>>
Mori
2016 年 7 月 13 日
or both here
Mori
2016 年 7 月 13 日
Oh I see my bad, It has actually 1*5 cell and each cell 1*12 cell and each cell has 1 double. Thanks for the example, I see where it was my mistake.
Andrei Bobrov
2016 年 7 月 13 日
for your data (MatFiles.mat):
A1 = cellfun(@(x)[x{:}]',A,'un',0);
out = bsxfun(@times,permute(cell2mat(A1),[1,3,2]),B); % out - 3D double array
or
out = cellfun(@(x)bsxfun(@times,x,B),A1,'un',0); % here out - cell array (1 x 5)
Mori
2016 年 7 月 13 日
ok great, it works. I relay appreciate.
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Cell Arrays についてさらに検索
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
