나는 정확히 똑같은 두 변수를 가지고 있지만, 하나는 <double>
이고 다른 하나는 <cell>
입니다. 코드에서 그들은 cell2mat
에 의해 변환 된 것으로 보인다. 나는 이것이 데이터 저장 장치의 문제라는 것을 이해하지만 이것에 대해서는 cell
과 double
의 차이점과 정의를 볼 수 없다.셀에 저장된 데이터와 MATLAB에서 double로 저장된 데이터의 차이점은 무엇입니까?
답변
배열 및 셀 배열은 일반적으로 MATLAB에서 가장 일반적으로 사용되는 두 가지 데이터 유형입니다.
1D 및 2D 배열은 수학과 마찬가지로 선형 대수학의 행렬입니다. 그러나 배열은 다차원 (n 차원) 배열 (텐서라고도 함) 일 수도 있습니다. MATLAB은이 배열을 다차원 배열이라고 부릅니다. 또한 MATLAB은 스칼라와 배열을 구분하지 않으며 벡터와 다른 행렬을 구분하지 않습니다. 스칼라는 MATLAB의 1x1 배열이며 벡터는 MATLAB의 Nx1 및 1xN 배열입니다.
몇 가지 예 : class
명령에 의해보고 된
MyScalar = 1;
MyHorizVector = [ 1 2 3 ];
MyVertVector = [ 1 2 3 ]';
MyMatrix = [ 1, 2; 3, 4 ];
My4Darray = cat(4, [ 1 2; 3 4], [ 5 6; 7 8 ], [ 9 10; 11 12 ], [ 13 14; 15 16 ]);
class(MyScalar)
ans =
double
class(MyHorizVector)
ans =
double
class(MyVertVector)
ans =
double
class(MyMatrix)
ans =
double
class(My4Darray)
ans =
double
그래서,이 모든 5 개 개의 다른 배열의 클래스는 double
입니다. double
은 사용 된 숫자 정밀도 (배정 밀도)를 의미합니다.
셀 배열은보다 추상적 인 개념입니다. 셀 배열은 하나 이상의 배열을 포함 할 수 있으며 배열이 아닌 다른 유형의 변수도 포함 할 수 있습니다. 셀 배열은 셀 배열이 보유 할 수있는 모든 것을 다시 저장할 수있는 다른 셀 배열도 보유 할 수 있습니다. 따라서 셀 배열을 서로 내부에 재귀 적으로 저장할 수도 있습니다.
셀 배열은 서로 다른 객체를 단일 변수로 결합하는 데 유용합니다. 함수에 전달되거나 cellfun
으로 처리됩니다. 각 셀 배열은 하나 이상의 셀로 구성됩니다. 임의의 배열은 {
}
연산자를 사용하여 셀 배열로 변환 할 수 있으며 결과는 1x1 셀 배열입니다. 사용할 수있는 명령은 mat2cell
및 num2cell
입니다.
MyCellArrayContainingMyScalar = { MyScalar };
MyCellArrayContainingMyHorizVector = { MyHorizVector };
MyCellArrayContainingMyCellArrayContainingMyScalar = { MyCellArrayContainingMyScalar };
위에서 만든 모든 셀 배열은 1x1 셀 배열입니다. 하나의 셀 어레이와 동일한 배열로 존재할 수없는 여러 가지 종류의 데이터를 저장할 수 있기 때문에
class(MyCellArrayContainingMyScalar)
ans =
cell
class(MyCellArrayContainingMyHorizVector)
ans =
cell
class(MyCellArrayContainingMyCellArrayContainingMyScalar)
ans =
cell
아니라 모든 셀 어레이는
cell2mat
을 이용하여 행렬로 변환 할 수있다.
cell2mat(MyCellArrayContainingMyScalar)
ans =
1
cell2mat(MyCellArrayContainingMyHorizVector)
ans =
1 2 3
그러나 이것이 실패 :
cell2mat(MyCellArrayContainingMyCellArrayContainingMyScalar);
Error using cell2mat (line 53)
Cannot support cell arrays containing cell arrays or objects.
그러나의 다른 배열로 구성된 셀 어레이의 다른 종류 해보자 :
이 작업 할
MyCellArray{1} = [ 1 2 3 ];
MyCellArray{2} = 'This is the 2nd cell of MyCellArray!';
class(MyCellArray)
ans =
cell
이 셀을 배열을 배열로 변환 할 수 없습니다. cell2mat
:
cell2mat(MyCellArray)
Error using cell2mat (line 46)
All contents of the input cell array must be of the same data type.
희망이 있다면 도움이 될 것입니다.
+1 : 좋은 설명 :) –
nrz의 대답에 덧붙여 셀 배열을 저장할 때 추가 메모리 오버 헤드가 있다는 것이 주목할 만합니다. 다음과 같은 출력을 생성
A = 1:5
B = {A}
C = num2cell(A)
whos
: 예를 들어, 다음 코드를 고려
A =
1 2 3 4 5
B =
[1x5 double]
C =
[1] [2] [3] [4] [5]
Name Size Bytes Class Attributes
A 1x5 40 double
B 1x1 152 cell
C 1x5 600 cell
- 첫 번째 줄에서 볼 수 있듯이, 복식의 기본 (1) 별 5 벡터
A
메모리에서 40 바이트를 사용합니다 (각 더블은 8 바이트 소요). - 두 번째 줄은
B
을 생성하기 위해 단일 셀로A
을 래핑하면 여분의 112 바이트가 추가된다는 것을 알 수 있습니다. 그것은 MATLAB에서 단일 셀의 오버 헤드입니다. C
은 5 개의 셀을 포함하고 (112 + 8) × 5 = 600 바이트를 차지하기 때문에 세 번째 줄은이를 확인합니다.
나는 이것에 대해 매우 혼란스러워. 행렬에는 지오메트리에 대한 정보가 필요하다고 생각했습니다. 그러나 나는 당신과 같은 결과를 얻습니다. – bdecaf
@bdecaf 정보는 아마도 여기에 포함되지 않은 변수 이름과 함께 어딘가에 저장됩니다 :-) –
- 1. Matlab에서 셀에 저장된 값을 표시하는 방법은 무엇입니까?
- 2. RavenDB에 저장된 데이터의 마이그레이션
- 3. 추가 의도 데이터와 의도 데이터의 차이점은 무엇입니까?
- 4. 셀에 저장된 값이있는 파일 열기
- 5. MATLAB에서 변수에 저장된 이미지를 보는 방법은 무엇입니까?
- 6. JSON으로 저장된 데이터의 크기 축소
- 7. QHash에 저장된 데이터의 모델 만들기
- 8. 저장된 데이터와 다른 데이터를 표시하는 방법
- 9. Django - 데이터베이스에 저장된 데이터의 그래픽 표현 (모델)
- 10. 저장된 데이터의 속성을 키로 사용하는 사전
- 11. C# 클래스에 저장된 데이터의 유효성을 검사하는 방법
- 12. 단일 셀에 저장된 범위의 최종 업데이트 날짜
- 13. 셀에 저장된 CSV 목록의 셀 유효성 검사
- 14. 격자 데이터와 스테이션 데이터의 차이
- 15. 아이폰에 데이터 캐싱. 저장된 데이터의 최대 크기
- 16. 최신 저장된 양식 데이터의 ID를 가져옵니다
- 17. 저장된 데이터의 텍스트 상자 미리 채우기
- 18. 독자에 저장된 데이터의 이름을 얻으려고 시도
- 19. 포스트 백 데이터와 뷰 상태 데이터의 차이점은 무엇입니까
- 20. 자이로 스코프 회전 데이터와 장치 모션 회전 데이터의 차이점은 무엇입니까?
- 21. 초기화 된 데이터와 초기화 된 데이터의 차이점은 무엇입니까?
- 22. matlab을 사용하여 셀에 저장된 픽셀 값을 이미지로 변환하는 방법은 무엇입니까?
- 23. Redshift에 저장된 데이터 처리
- 24. Matlab에서 Excel 파일에 저장된 큰 데이터를 임의로 셔플하는 방법은 무엇입니까?
- 25. 데이터베이스에 저장된 데이터의 시간을 계산하고 브라우저에 표시하는 방법은 무엇입니까?
- 26. 200GB 최대 볼륨 크기 또는 저장된 데이터의 EBS 비용은 무엇입니까
- 27. API 데이터와 MongoDB 데이터의 결합
- 28. 왜 셀에 저장된 데이터에 대한 액세스 시간이 행렬보다 짧습니까?
- 29. 데이터베이스의 메타 데이터와 스키마의 차이점은 무엇입니까?
- 30. 집계 된 데이터와 연결된 데이터의 차이
답변이 좋을 때 - 배열에서 모든 항목이 같은 유형이어야합니다. 셀에서는 여러 유형이 될 수 있습니다 (Excel 표와 같음 - 숫자와 텍스트가 혼합되어 있음).). – bdecaf