How to solve Conversion to cell from double is not possible.

조회 수: 6 (최근 30일)
Nora Khaled
Nora Khaled 2017년 8월 29일
댓글: Nora Khaled 2017년 8월 30일
I am trying to create an array named actOld using this code
for i=1:nPlayers
uAve{i}=zeros(nRoads,1);
actOld(i)=randi(3);
end
and the error message " Conversion to cell from double is not possible. , actOld(i)=randi(3);" appears.
  댓글 수: 8
Adam
Adam 2017년 8월 29일
Well I don't see how it is a cell array at the moment. It appears to be a numeric array that is sub-optimally growing in a loop.
Nora Khaled
Nora Khaled 2017년 8월 30일
thank you all.

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

답변 (2개)

Fangjun Jiang
Fangjun Jiang 2017년 8월 29일
편집: Fangjun Jiang 2017년 8월 29일
Your variable actOld must be cell. Check it using class(actOld);
>> actOld=cell(5,1);
>> actOld(1)=randi(3)
Conversion to cell from double is not possible.
Use actOld{i}=randi(i) if that is what you want.
  댓글 수: 3
Walter Roberson
Walter Roberson 2017년 8월 29일
If you need to be able to assign an entire vector to act(j) where j is a scalar, then you will need to create a new Vector object class and define appropriate indexing and mathematical operations for it. When you have act(j) with scalar j then that is notation for referring to a scalar.
If I recall correctly, someone put a vector class into the File Exchange.
find(act==k)
As you want act to be a vector of vectors, and as k is a scalar there will be no places where the vector act(j) is equal to the scalar k.
Nora Khaled
Nora Khaled 2017년 8월 30일
thank you all.

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


Jan
Jan 2017년 8월 29일
You do not need a vector class or a cell array. The problem can be solved with numerical arrays directly:
uAve = zeros(nRoads, nPlayers);
actOld = randi(3, 3, nPlayers);
No need for a loop. Accessing the sub matrices works easy and efficient. So there is potential to simplify the code and fix the problem at the same time.

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by