Hello! does anyone know why when I try to execute this command I got the next error
Error using horzcat
Dimensions of matrices being concatenated are not consistent
Error in @(x)[x,nan(1,max(m)-numel(x))]
where
m=cellfun(@numel,R);
B = cellfun(@(x)[x,nan(1,max(m)-numel(x))],R,'un',0);
where m is 30*1 double and R is 30*1 cell composed by numbers
Thanks a lot!

댓글 수: 3

Walter Roberson
Walter Roberson 2016년 4월 27일
Is what is inside R row vectors or column vectors?
Muhammad Usman Saleem
Muhammad Usman Saleem 2016년 4월 27일
your matrix are not favorable for multiplication. Read some basics about multiplication of A and B matrix.
Rows of matrix A must be same as columns of matrix B.
Viridiana  Torres
Viridiana Torres 2016년 4월 27일
Thanks muhammad my mistake is not about how to multiplicate A and B, that is something that I know. My mistake is related with how to interpret the codes in Matlab.

댓글을 달려면 로그인하십시오.

 채택된 답변

Stephen23
Stephen23 2016년 4월 27일
편집: Stephen23 2016년 4월 27일

0 개 추천

This error can occur whenever any of the elements of R are column vectors or matrices:
>> R = {[1;2;3;4],[5;6]};
>> m = cellfun(@numel,R)
m =
4 2
>> B = cellfun(@(x)[x,nan(1,max(m)-numel(x))],R,'un',0)
Error using horzcat
Dimensions of matrices being concatenated are not consistent.
Error in @(x)[x,nan(1,max(m)-numel(x))]
Think about it: you use numel to get the total number of elements in the array and use this to pad the array using a row vector so NaN's, but you always pad using horizontal concatenation [ , ]. But note that numel does not say anything about the orientation of the vectors, or how many rows/columns/pages/... an array has. So you could end up trying to concatenate a column vector and a row vector. Or an array and a row vector.
Basically you are doing this:
>> [[5;6],nan(1,2)]
Error using horzcat
Dimensions of matrices being concatenated are not consistent.
But you need to think about the shape of the two arrays that you are trying to concatenate:
>> [5;6]
ans =
5
6
>> nan(1,2)
ans =
NaN NaN

댓글 수: 1

Viridiana  Torres
Viridiana Torres 2016년 4월 27일
Dear Stephen thanks a lot for your answer and the way you explain it, I really appreciate when someone tries to explain properly its answer. Thanks a lot!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

질문:

2016년 4월 27일

댓글:

2016년 4월 27일

Community Treasure Hunt

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

Start Hunting!

Translated by