matlab에서 여러 변수를 효율적으로 정의하는 방법이 있습니까? 내가 찾은 모든 것이 내가 찾고있는 것이 아니다. 상황은 다음과 같습니다.여러 변수를 효율적으로 정의하기
parstrs = {'a','b','c'};
parvals = [1 2 3];
사실 나는 다음과 같은 효율적인 명령을 원합니다. 결과는 숫자 변수 a
에 저장되어
parstrs = parvals;
2는 b
에 저장되고, 3 c
에 저장되는 등
I 세포와 이렇게 열려있어 또는 구조체.
제안 사항?
더 자세한 설명 : 아래에서 언급했듯이 커브 피팅에 변수 이름 목록이 얼마나 오랫동안 사용되는지 신경 쓰지 않는 코드를 작성하고 싶습니다. 내가 발견 한 가장 좋은 방법은 다음과 같은 구조를 사용하는 것입니다 :이와
parstrs = {'a','b','c'};
parvals = num2cell([1 2 3]);
partmp = {parstrs{:};parvals{:}};
pars = struct(partmp{:});
문제는 갈 거예요 구조가 같은 방식으로 편집 할 수 없다는 것입니다. 또한 eval
을 사용할 수 있습니다
[a, b] = function_returning_values();
: 당신이 좋아하는 뭔가를 할 수
Error using setfield (line 48)
Inputs must be either cell arrays or strings.
오류가있는 마지막 명령에 루프를 사용할 수 없습니까? –
확실히. 필자는 필자가 작성한 멀티 세트 필드 함수를 가지고있다. (또한 라이트 스피드 도구 상자에 조금 더 빨라질 수도있다.) 최적화 실행시에 ode의 rhs가 1000이라고 불리는 이후 루프를 피하려고합니다. – dmbortz
다른 사람들이이 문제를 겪은 경우, 제 경험상 setfield 명령을 반복하는 것이 가장 좋습니다. eval 명령을 반복하는 데 걸리는 시간은 약 1/3입니다. – dmbortz