Matrix row cell concatenation

5 views (last 30 days)
Ahsan
Ahsan on 20 Jul 2019
Commented: Stephen23 on 11 Apr 2023
Hello,
I have a matrix and I would like to combine its row cells as an array of the matrix.
Ex:a
1 2 3
4 5 6
7 8 9
result:b
123
456
789
I tried a solution to from this link:
a = [ 8 1 6 ; 1 2 3 ; 4 5 6 ]
[l c ] = size (a) ;
b = cell (l,1);
for i =1 : l
b {i,: } = [ a(i,1) a(i,2) a(i,3) ] ;
end
but I get the out put as
ans =
[1x3 double]
[1x3 double]
[1x3 double]
any help would be appreciated. Thnx
  4 Comments
Ahsan
Ahsan on 21 Jul 2019
and I am trying to achieve 1.[123; 456; 789], a 3-by-1 column vector of 3-digit numbers?
Stephen23
Stephen23 on 11 Apr 2023
M = [1,2,3;4,5,6;7,8,9];
V = M*[100;10;1]
V = 3×1
123 456 789

Sign in to comment.

Answers (1)

madhan ravi
madhan ravi on 20 Jul 2019
Edited: madhan ravi on 20 Jul 2019
b = reshape(arrayfun(@(x)polyval(a(x,:),10),...
1:size(a,1),'un',0),[],1);
Wanted = cell2mat(b)
  4 Comments
madhan ravi
madhan ravi on 20 Jul 2019
Edited: madhan ravi on 22 Jul 2019
What more do you need ? Doesn't the below give what you want??
>> a = [1 2 3
4 5 6
7 8 9 ];
>> bb=num2cell(string(a),1);
>> b=str2double(strcat(bb{:}))
b =
123
456
789
>> size(b)
ans =
3 1 % 3 by 1 vector
>>
Andrew Sol
Andrew Sol on 11 Apr 2023
Here! That's what I need! Thank you!

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!