How to multiply a cell array with a matrix
Show older comments
Ya I have a cell matrix example [1 0;1 0;0 1][0 1;0 1;1 0] and a matrix of 3*5. I want to multiply this cell matrix and the 3*5 matrix. How can I do this thing? What I have done is
for l1=1:ll
for j1=1:jj
for i1=1:ii
out=cellfun(@(y) y*w(i1,j1),x(i1,l1),'un',0)
tot = cellfun(@(y) sum(y(:)), out,'UniformOutput', false);
x1(i1,l1)= cellfun(@(y) sum(y(:)), x(i1,l1),'UniformOutput', false);
end
m(l1,j1)=cellfun(@rdivide,tot,x1(i1,l1),'UniformOutput',false)% avarege cell load
end
end
4 Comments
I presume that in your example of the matrix you meant
w = ...
and not
w(i,j) = ...
as the latter is not valid matlab syntax. I've no idea of the format of x though. I'd have thought it'd be a column (or row) cell array, but in your code it appears to be a 2D cell array.
Each of your logical array is of size 5x2. How do you expect to multiply that with w which is of size 5x7?
Azzi Abdelmalek
on 5 Jun 2015
You don't need to post all this big matrix, just post a short example, and what you need. Specify if you are using cell array.
Aryama Mandal
on 5 Jun 2015
Abhishek
on 3 Mar 2025
Hi, can you please specify which verison of MATLAB did you use?
Answers (1)
Aravind
on 3 Mar 2025
To convert a cell array into a regular array in MATLAB, you can use the "cell2mat" function. Once you have the regular array, you can multiply it with any matrix using the '*' operator for matrix multiplication.
Here's an example:
cellArray = {[1,0;0,1;1,1],[1,1;2,5;1,0]};
regularArray = rand(4,3); % Example matrix
productValue = cell2mat(cellArray) * regularArray; % Perform matrix multiplication
For more details on the "cell2mat" function, you can visit: https://www.mathworks.com/help/matlab/ref/cell2mat.html. Alternatively, you can view the documentation specific to your MATLAB version by entering the following command in the MATLAB command prompt:
doc cell2mat
I hope this helps!
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!