我们想把元胞数组转换为普通数组时经常遇到这个问题,为了解决这个问题,我们可以采用填充的方式首先将元胞数组填充完整,再进行转换。文章来源:https://www.toymoban.com/news/detail-509602.html
A=sparse([0 1 0 0 1;2 1 0 3 0;1 2 0 0 2;0 3 1 0 0]); %data
[ii,~,vv]=find(A);
uniq=accumarray(ii(:),vv(:),[],@(x){unique(x.')});
padded=cellfun(@(M)[M(1,1:end),...
zeros(1,4-size(M,2))],...
uniq,...
'UniformOutput',false);
uniq=cell2mat(padded);
以上为一个示例,我首先求出矩阵每行的不重复的元素,得到一个元胞数组,元胞数组每行长度不一致,使用cellfun函数将元胞数组空白地方填充为0,再进行转换。文章来源地址https://www.toymoban.com/news/detail-509602.html
到了这里,关于使用cell2mat函数时提示串联矩阵维度不一致解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!