Operator '.*' is not supported for operands of type 'cell'.

288 visualizaciones (últimos 30 días)
Gözde Üstün
Gözde Üstün el 9 de Jul. de 2020
Comentada: Image Analyst el 10 de Jul. de 2020
Hello,
I am getting this error: Operator '.*' is not supported for operands of type 'cell'.
Here my code:
for a=1:m %d->m
for b=1:m %d->m
for x=1:m
for y=1:m
BO=BO+B(a,b,x,y).*(kron(A_ax(:,:,x,a),B_by(:,:,y,b))); %this is the Bell operator
end
end
end
end
And b is coming from other code. I am converting it:
B=T(:,:,:,:);
B=cell2mat(B);
I really dont understand why I have this error and how I can solve it

Respuestas (2)

Matt J
Matt J el 9 de Jul. de 2020
Editada: Matt J el 9 de Jul. de 2020
Well, you need to check whether B is a cell array or not (it almost certainly is). Did your call to cell2mat work?
  3 comentarios
Matt J
Matt J el 10 de Jul. de 2020
Well, that explains everything. Multiplication with a cell array will not work
>> {2}.*3
Undefined operator '.*' for input arguments of type 'cell'.
Image Analyst
Image Analyst el 10 de Jul. de 2020
Hopefully after you read the FAQ, you'll have a better idea of what a cell array is, how it works, and how to use it: FAQ : What is a cell array? And you'll learn when to use braces, when to use parentheses, and when to use brackets.

Iniciar sesión para comentar.


Image Analyst
Image Analyst el 9 de Jul. de 2020
If B is a cell array, try B{a,b,x,y} instead of B(a,b,x,y) to get the contents of the cell.
  1 comentario
Gözde Üstün
Gözde Üstün el 10 de Jul. de 2020
B is a cell array because when I tried to convert it, I am getting this error:
Dimensions of arrays being concatenated are not consistent.
Error in cell2mat (line 118)
ct{mref{:}} = cat(cdim+1,c{mref{:},:});

Iniciar sesión para comentar.

Categorías

Más información sobre Data Type Conversion en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by