1D 어레이로 히트 맵을 만들고 싶습니다. 이것이 내 계획입니다.
[센터 # 1, LU] = {01251074210} * LRUD = 왼쪽, 0, 1, 1, 4, 12, 7, 5, 3, 2, 1]
0, 1, 3, 6, 11, 6, 5, 3, 1}
[center # 4, RD] = {0,1,3,6,11,6,5,3,1,1}
히트 맵의 다섯 번째 색인 ([# 1] = 10, [# 2] = 12, [# 3] = 11, [# 4] = 11) 히트 맵이이 이미지와 같아야합니다.
Heatmap image
또한 첫 번째 색인 ([# 1] = 0, [# 2] = 0, [# 3] = 0, [# 4] = 0)
일 때 히트 맵이 모두 파란색임을 예측할 수 있습니다. 마지막 색인 때 거의 파란색으로 변합니다.
Matlab의 1D 배열에서 2D 행렬을 얻으려면 어떻게해야합니까? [# 1] = 0, [# 2] = 1, [# 3] = 0, [# 4] 중심에서 값을 줄이는 것은 선형이 될 수도 있고 어떤 것이 될 수도 있습니다.어떻게 1D 배열을 MATLAB의 2D 매트릭스로 변환 할 수 있습니까?
0
A
답변
0
예제에 따라, 각 행렬의 중심점이 배열의 값을 얻고 모든 네 이웃이 0이 될 때까지 값이 감소하는 4 n * n 행렬을 항상 생성하려고합니다. 나는 그것을 올바르게 받았 느냐?
생성하려는 네 개의 행렬 중 하나를 생성합니까? 그렇다면 매개 변수를 수정하고 4 개의 행렬을 만들어 함께 그립니다.
% your matrix size
size = 15
center = (size + 1)/2
center_value = 5
mat_a = zeros(size,size);
mat_a(center,center) = center_value;
%loop all values until zero
for ii=1:center_value -1
current_value = center_value - ii;
update_mat = mat_a;
% loop over matrix, check if 4-neighbors non-zero
for x =1:size
for y =1:size
if (mat_a(y,x) == 0)
has_non_zero_neighbor = false;
% case 1
if (x < size)
if (mat_a(y,x+1) > 0)
has_non_zero_neighbor = true;
endif
endif
% case 2
if (y < size)
if (mat_a(y+1,x) > 0)
has_non_zero_neighbor = true;
endif
endif
%case 3
if (x > 1)
if (mat_a(y,x-1) > 0)
has_non_zero_neighbor = true;
endif
endif
% case 4
if (y > 1)
if (mat_a(y-1,x) > 0)
has_non_zero_neighbor = true;
endif
endif
%if non-zeros, update matrix item value to current value
if (has_non_zero_neighbor == true)
update_mat(y,x) = current_value;
endif
endif
end
end
mat_a = update_mat;
end
figure(1)
imshow(mat_a./center_value)
관련 문제
- 1. 어떻게 2D 배열에서 1D 배열을 채울 수 있으며 1D 배열을 정렬 할 수 있습니까?
- 2. 어떻게 셀 배열을 스파 스 매트릭스로 변환 할 수 있습니까?
- 3. C++, 1D 배열을 2D 배열로 변환
- 4. 1D 문자열 배열을 2D 배열로 변환
- 5. 1D 배열의 인덱스를 2D 배열로 변환
- 6. 1D 배열을 Java에서 2D 배열
- 7. MATLAB의 .tsv 파일과 혼동 (매트릭스로 변환)
- 8. 3D 배열을 1D 배열로 변환
- 9. 1D 바이트 배열을 1D 정수 배열로 변환
- 10. 2D 변환 1D 배열을 시계 방향으로 90도 회전
- 11. 2D 배열을 연속 된 행 항목이있는 1D 목록으로 변환
- 12. 두 개의 1D 배열을 단일 2D 배열로 변환
- 13. 2D 플로트 배열을 1D 문자열 배열로 변환합니다.
- 14. 배열 2D 대 1D 변환 및 혼동
- 15. 2D 배열의 열로 1D 배열을 합산합니다.
- 16. griddata()없이 1D 배열을 사용하는 2D 플롯
- 17. 2D 배열을 데이터베이스로 변환
- 18. C# 1D 배열을 2D로 변환
- 19. 2D 배열에 1D 배열을 추가하는 방법은 무엇입니까?
- 20. 1D 배열을 여러 개의 1D 배열 열이있는 2D 배열로 연결
- 21. I가리스트/1D 배열을 추가 할
- 22. 2D 배열에서 키를 전송하여 1D 배열을 채우기
- 23. 2D 배열을 기반으로 1D 배열을 정렬하는 방법은 무엇입니까?
- 24. 세포를 표준 매트릭스로 변환
- 25. C++은 2D 데이터로 1D 배열을 사용합니다.
- 26. 2D NumPy 배열에서 1D 배열을 찾으시겠습니까?
- 27. 1D 배열을 특정 순서로 2D 배열에 넣으려고합니다.
- 28. 2D numpy 배열을 1D 배열로 자르기
- 29. 2d char 배열과 1d char 배열을 비교하십시오.
- 30. Maple - 1D 목록을 2D 배열로 변환
실제로 무엇을 하려는지 이해할 수 없습니다. 4 개의 10x1 배열이 있습니다. 좋습니다. 결과 행렬이 어떻게 생겼습니까? – Bernhard
@ Bernhard 위에 열거 한 예와 같이 히트 맵 비디오에 배열을 만들고 싶습니다.이 비디오의 첫 번째 프레임은 4 NxN 제로 행렬이고 비디오의 두 번째 프레임은 4 NxN 행렬입니다. 1의 주변 값은 균일하게 감소합니다. – hsl
아직 명확하지 않습니다. 아마도 2D 행렬 (또는 적어도 그 일부)이 어떻게 생겼는지에 대한 질문에 예제를 추가 할 수 있을까요? – NLindros