2014-01-12 3 views
1

구조체 필드의 형식을 찾으려고합니다.클래스 생성자에서 CLASS 함수를 호출해야합니다.

나는 배열이 무슨 생각에 prod 전화를했지만,이 오류가있어 :

??? Error using ==> prod 
Dimension argument must be a positive integer scalar within indexing range. 

그래서 나는 문제의 객체를 인쇄이 발견입니다

K>> F.val 

ans = 

    0.110000000000000 0.890000000000000 


ans = 

    0.590000000000000 0.410000000000000 0.220000000000000 0.780000000000000 


ans = 

    0.390000000000000 0.610000000000000 0.060000000000000 0.940000000000000 

을 배열의 출력과 다른데, 다음과 같습니다.

K>> [0.11 0.89 0.59 0.41 0.22 0.78 0.39 0.61 0.06 0.94] 

ans = 

    Columns 1 through 4 

    0.110000000000000 0.890000000000000 0.590000000000000 0.410000000000000 

    Columns 5 through 8 

    0.220000000000000 0.780000000000000 0.390000000000000 0.610000000000000 

    Columns 9 through 10 

    0.060000000000000 0.940000000000000 

개체에 class 전화, 나는이 오류가 발생합니다 :

K>> class(F.val) 
??? Error using ==> class 
The CLASS function must be called from a class constructor. 

가 어떻게 F.val의 종류를 찾을 수 있습니다 ?

+0

커맨드 라인에서''class '의 출력은 무엇입니까? – Shai

+0

'F.val'은 셀 배열입니다. 이것을 체크하려면'>> iscell (F.val)'을 할 수 있습니다. 배열로 변환하려면 간단하게'>> [F.val {:}]' – Shai

+0

을 원하면 GUI의 구조를 드릴 다운 할 수 있습니다. 작업 공간 변수 창을 두 번 클릭하거나 'openvar ('F')' – Notlikethat

답변

4

F은 대부분 구조체의 배열입니다. 따라서 class(F.val)을 호출하는 것은 class(F(1).val, F(2).val, F(3).val)을 호출하는 것과 같습니다. 이는 하나의 입력 요소 구문과 다릅니다.

class(F(1).val)을 사용하여 의 첫 번째 요소 인 val 클래스를 얻습니다.

그런데 prod의 오류는 비슷한 기원이 될 가능성이 큽니다. 그러나 prod(F(1).val)은 잘 작동하지만 두 개의 입력에서는 두 번째가 차원 인수로 간주되며 정수 여야합니다 (그래도 class double 일 수 있음).

관련 문제