Create && Fill array variables resulting from the concatenation of string characters and numbers
조회 수: 1 (최근 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!