2017-12-03 2 views
-1

함수 내부에서 임의의 행렬 항목을 추출하는 방법을 알아야합니다. 함수를 말하십시오 f은 고정 실제 실수 행렬 요소 a(i,j)을 추출하기 위해 두 개의 추가 입력 인수 ij을 얻습니다. 행렬은 작업 공간에 있으며 크기가 큽니다. f 함수는 긴 반복 알고리즘 안에 있습니다. 각 반복에서 전체 행렬 a을 불러 오면 속도가 현저히 떨어집니다. 이 행렬은 함수로 정의되거나 (함수 내에서 호출 될 수 있도록) 정의되거나 매트 파일에서로드해야합니다. 첫 번째 옵션은보다 효율적으로 보이지만 행렬을 함수로 저장하는 방법을 모릅니다.MATLAB 함수에서 데이터 행렬 사용

+0

이 함수를 호출하는 방법과 별도의 함수를 통해 배열에 액세스해야하는 이유를 보여주는 몇 가지 (최소) 코드 또는 적어도 의사 코드를 보는 것이 좋습니다. – beaker

답변

0

귀하의 질문에 이해가 가지 않습니다.

배열이 arr이라고 가정합니다. arr(i,j)을 사용하여 요소에 액세스 할 수 있습니다.

함수 본문에 func(arr, i, j) 함수가 있다고 가정하면 매개 변수로 arr(i,j)에 쉽게 액세스 할 수 있습니다. func 배열을 반환하는 경우

, 당신은 당신이 기능의 매트릭스를 원하는 경우에, var = func(arr); var(i,j)

을 그들에게 핸들을하고 배열에서 그 저장할 수 있습니다;

a = @func_a; 
b = @func_b; 
c = @func_c; 
funcarray = [a b c]; 
+0

우리가 말하는 배열은 미리 지정되어 있고 크기가 큽니다. 나는'arr (i, j)'와 같은 함수를 데이터 시트에서 생성하는 방법을 찾고있다. –

+0

@SaraWinslet 일반적으로 함수에 배열을 전달합니다. MATLAB은 copy on write를 사용하기 때문에 메모리에 문제가 없다고 가정하면 함수의 데이터를 변경하지 않으면 배열이 함수에 복사되지 않습니다. 관심있는 배열과 인덱스를 이미 알고 있다면 함수에'a (i, j)'를 그냥 전달하지 않는 것이 좋을까요? 어떤 문제를 해결하려고합니까? – beaker

+0

나는 모든 항목을 사용할 것입니다. 함수 자체는 긴 반복 알고리즘 안에 있습니다. –