필터 지우기
필터 지우기

Construct a reference to a matrix where the matrix name is the value of a variable

조회 수: 4 (최근 30일)
I want to construct a matrix reference from information contained in a set of variables. Example: say I want to set a matrix with these values:
fData = saaData(:, 16)
However, the statement is part of a for loop, and both the column and the particular matrix being referenced change on each pass. They are specified by a pair of variables:
fctSource = factors{i, 2};
fctIdx = factors{i, 3};
where on this pass, factors{i, 2} = saaData and factors{i, 3} = 16.
How can I construct a command, using fctSource and fctIdx, that will return the column vector given by saaData(:, 16)?

채택된 답변

Teja Muppirala
Teja Muppirala 2013년 4월 9일
If you need to reference a variable with a dynamic name based on a string, you'd generally call EVAL. That being said, doing these sorts of manipulations with EVAL can often get confusing, and is usually not a efficient way to solve a problem.
saaData = rand(3,16)
factors = {'something' 'saaData' 16}
if exist(factors{2},'var') %Make sure it's actually a variable...
string = [factors{2} '(:,' num2str(factors{3}) ')'];
fData = eval( string )
end

추가 답변 (1개)

Walter Roberson
Walter Roberson 2013년 4월 9일
  댓글 수: 2
William
William 2013년 4월 9일
I think I'm missing something on how to use that. This seems to be advice about creating a set of variables. In my case, I'm trying to construct a matrix from columns in a number of other matrices. (The example I gave above is a touch simplified; where it says fData = saaData(:, 16), what I properly want is fData(:, 1) = saaData(:, 16). The other columns will be set in the same way, referencing different matrices, in the subsequent passes of the for loop.)
Am I missing a connection between creating variables and creating matrices, or should I try a different approach?
Walter Roberson
Walter Roberson 2013년 4월 9일
The techniques for creating a set of variables are closely related to the techniques for using a set of variables.
And you missed the big point of the beginning: DON'T DO THAT! Store your variables in indexable forms instead of using different variable names.

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

카테고리

Help CenterFile Exchange에서 Whos에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by