Error Using a loop: Conversion to double from cell is not possible.
显示 更早的评论
Hello everyone,
On executing following code:
for w = 1:10
PN = PName{w};
CS = CSize{w};
Project = [PN CS];
Project = sortrows(Project,1);
Project = Project(11:end,1:end);
Proj(w) = Project;
end
I am getting error: Conversion to double from cell is not possible..
Code is running well till Project = Project(11:end,1:end);
Size of Project is: 4227x2 cell.
Error is while assigning a values to a new variable using a loop at Proj(w) = Project;
Any help would be appreciated :-)
Regard,s
Waqar Ali
3 个评论
Guillaume
2019-7-10
Well, as you state Prorject is a cell array. From the error message, we can deduce that Proj is a matrix of doubles. So, of course you can't store a whole cell array as an element of a matrix.
Since you haven't said what you're trying to do, we can't tell you how to fix it, other than not trying to store cell arrays in matrices.
Waqar Ali Memon
2019-7-10
Stephen23
2019-7-10
"I want to create a new variable ... I should get new variable with name Proj1..."
Dynamically accessing variable names is one way that beginners force themselves into writing slow, complex, obfuscated, buggy code that is hard to debug. Read this to know why:
https://www.mathworks.com/matlabcentral/answers/304528-tutorial-why-variables-should-not-be-named-dynamically-eval
In contrast indexing is simple, neat, easy to debug, and very efficient. You should use indexing, just like madhan ravi showed in their answer.
采纳的回答
更多回答(2 个)
madhan ravi
2019-7-10
Proj = cell(10,1); % outside loop
Proj{w} = ... % inside loop , leave the rest unchanged
3 个评论
Waqar Ali Memon
2019-7-10
madhan ravi
2019-7-10
See https://in.mathworks.com/matlabcentral/answers/304528-tutorial-why-variables-should-not-be-named-dynamically-eval why it's a terrible terrible idea
Stephen23
2019-7-10
+1 simple and efficient MATLAB solution.
Waqar Ali Memon
2019-7-10
1 个投票
1 个评论
Peter Jarosi
2019-7-10
Waqar Ali Memon : You're very welcome!
I totally agree with programmer gurus madhan ravi, Guillaume , and Stephen Cobeldick. It is not recommended using dinamically changed variable names, and string operations instead of numbers, especially when we develope big applications. I appreciate their comments.
But sometimes we have to break rules, we need ugly tricks in order to solve our small problems quickly. :-)
Good luck!
类别
在 帮助中心 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
