Too many input arguments error when cell2mat and mean functions are used
이전 댓글 표시
I have five cluster data saved in my cell array iniclu. Each row of cell array contains varying number of columns such as 23 27 26 17 7 so that the shortage of columns are marked as [] to the max of 27. Now i want to process cell array row one by one to find mean or centroid of each cluster. My usage is shown in code, but it throws error.
count = [23 27 26 17 7]
iniclu = cell(1,1); %later i built the cluster data as shown in fig
for i = 1:5
bb = [];
bb = cell2mat(iniclu{i,1:count(i)});
centroids(i,:) = mean(bb,1);
end
But it throws too many input arguments error, hence i could not get expected op as centroids having 5x2 means data. I have attached content of iniclu data.
Pls clarify!
Pls clarify!댓글 수: 3
Chuguang Pan
2024년 3월 13일
bb=cell2mat(iniclu(i,:));
NALLARASU KRISH
2024년 3월 13일
Walter Roberson
2024년 3월 13일
no, you have different sizes of cells; you can only put them together as a vector (unless you are willing to pad the entries)
채택된 답변
추가 답변 (1개)
VBBV
2024년 3월 13일
1 개 추천
bb = cell2mat(iniclu(i,1:count(i)));
Use a ( ) in place of { }
댓글 수: 9
VBBV
2024년 3월 13일
If you use { } the result is not a cell, so you don't need cell2mat function to convert
NALLARASU KRISH
2024년 3월 13일
@NALLARASU KRISH, you can get the cell2mat output as 23 x 2 if you reshape
bb = cell2mat(iniclu(i,1:count(i)));
bb = reshape(bb,[],2);
centroids{i} = mean(bb,1); % The 5th row unequal data size compared to remaining rows
NALLARASU KRISH
2024년 3월 13일
@NALLARASU KRISH, ok, try the below
bb = cell2mat(iniclu(i,1:count(i)));
bb = reshape(bb,2,[]).';
centroids{i} = mean(bb,1); % The 5th row unequal data size compared to remaining rows
NALLARASU KRISH
2024년 3월 13일
@NALLARASU KRISH you have used the below line incorrectly, it should be as shown below
bb = reshape(bb,2,[]).';
NALLARASU KRISH
2024년 3월 13일
Look at the sizes of the outputs and the arrangement of data in those outputs.
bb = 1:10
bb1 = reshape(bb, 2, []).'
bb2 = reshape(bb, [], 2).'
카테고리
도움말 센터 및 File Exchange에서 Cell Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!