Create && Fill array variables resulting from the concatenation of string characters and numbers
2 次查看(过去 30 天)
显示 更早的评论
Hi
I have been unsucessfully looking for an advice on a code that loops through a dataset (of cell type) and extracting each column as data vector, and hope MATLAB pundits could assist owing to the challenging feature of this task.
[i,j]=size(testdata);
k=2;
while k<=j % looping through columns
['_' num2str(k-1)'yr']=cell2mat(testdata(:,k)); %extract data from each column in "testdata "and assign it to variables "_kyr" as column vector
k=k+1;
end
--------------------------
Error: An array for multiple LHS assignment cannot contain LEX_TS_STRING.
Thanks in advance and regards
1 个评论
Stephen23
2015-8-19
You are trying to create variable names dynamically. This is a bad idea, read the answers to know why.
回答(1 个)
Stephen23
2015-8-19
编辑:Stephen23
2019-6-19
3 个评论
Stephen23
2015-8-19
编辑:Stephen23
2015-8-19
Just use cell2mat on your whole cell array, you do not need to use separate variables. Then use indexing to quickly access the rows/columns that you require.
The links that I gave will not create "additional confusion", because they all state that creating variables names dynamically is slow, buggy and a bad idea. It is "recurrent topic" because beginners keep thinking that it is a great idea.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!