# could anyone help me how to solve the error in the following code

5 ビュー (過去 30 日間)
jaah navi 2021 年 7 月 16 日
コメント済み: jaah navi 2021 年 7 月 17 日
I am having cell array
B=10x1 cell
which contains
10x4 double
10x4 double
10x4 double
10x4 double
10x4 double
10x4 double
10x4 double
10x4 double
10x4 double
10x4 double
I used the following code to convert it
A=cell(size(B));
for i=1:numel(B)
A{i}=splitapply(@(x){x}, 1:numel(B{i}) ,B{i});
disp("YTest{" +i+ "}:"), B{i}
for j=1:numel(A{i})
disp("A{" +i+ "}{"+j+"}:"), A{i}{j}
end
disp ' '
end
##### 2 件のコメントなしを表示なしを非表示
jessupj 2021 年 7 月 16 日
what is the error, exactly?
what is the line
splitapply( @(x) {x}, 1:numel(B{i}) ,B{i} )
supposed to do? it looks like that's where is problem to me
jaah navi 2021 年 7 月 16 日
Error using splitapply
Group numbers must be a vector of positive integers, and cannot be a sparse vector.
Error in line 3
A{i}=splitapply(@(x){x}, 1:numel(B{i}) ,B{i});

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

### 回答 (1 件)

Walter Roberson 2021 年 7 月 16 日
The last parameter to splitapply must be a vector of positive integers, one for each row of input, with the number indicating which group the row belongs to.
It is not clear that your B values are integers. It is clear that B{i} is not a vector.
Perhaps you accidentally exchanged the second and third parameters.
##### 8 件のコメント6 件の古いコメントを表示6 件の古いコメントを非表示
Walter Roberson 2021 年 7 月 16 日
Unfortunately, you did not explain what output you want.
rng(12345)
B{1} = randi(9, 3, 4);
B{2} = randi(9, 3, 4);
celldisp(B)
B{1} = 9 2 9 6 3 6 6 7 2 6 7 9 B{2} = 1 6 9 7 1 8 7 5 3 8 6 3
What exact output would you want for the above?
jaah navi 2021 年 7 月 17 日
I want B to convert to A.
B=3x1 cell
2x3 double - [1,1,1 - 1st row
1,2,2]- 2nd row
A=3x1 cell
2x1cell - [1,2,3] 1st row
2x2cell - [1] [2,3] 2nd row

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

### カテゴリ

Help Center および File ExchangeEntering Commands についてさらに検索

### Community Treasure Hunt

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

Start Hunting!

Translated by