Azzera filtri
Azzera filtri

Getting "Undefined operator '*' for input arguments of type cell' error for my code

4 visualizzazioni (ultimi 30 giorni)
Hi, when I multiply A with A1 I am getting "Undefined operator * for input arguments of type cell' error for he below-mentioned code. Can somebody help me to fix it?
s = string({'CR';'E';'R';'S';'SR'})
s1 = s([2,5])' + (1:20)'
s1 = [s([2,3,2,4]) + [101;1;106;1];s1(:)] + (0:4)
d = {tril(ones(44,4),-1),diag(ones(20,1),-24)}
d{2} = d{2}(:,1:end-4)
dd = repmat({[d{:}]},1,5)
str = cellstr([s(1);s1(:)])
out = [{nan},str(:)';str, num2cell([zeros(1,221);[ones(220,1),blkdiag(dd{:})]]) ];
A= out(2:end,2:end);
A1= ( randn(221,1) * 0.1 ) + 0.45;
X1= A*A1;

Risposta accettata

KSSV
KSSV il 20 Feb 2018
Modificato: KSSV il 20 Feb 2018
A is a cell and A1 is a matrix/ double. You need to convert A into matrix to multiply.
Use:
X1 = cell2mat(A).*A1 ;

Più risposte (1)

Star Strider
Star Strider il 20 Feb 2018
It is easiest to convert ‘A’ to a double array, then do the multiplication:
X1 = cell2mat(A)*A1;
Convert ‘X1’ to a cell later if necessary.

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by