1つのデータにXY要素を持たせて行列を作成する方法
이 질문을 팔로우합니다.
- 팔로우하는 게시물 피드에서 업데이트를 확인할 수 있습니다.
- 정보 수신 기본 설정에 따라 이메일을 받을 수 있습니다.
오류 발생
페이지가 변경되었기 때문에 동작을 완료할 수 없습니다. 업데이트된 상태를 보려면 페이지를 다시 불러오십시오.
이전 댓글 표시
0 개 추천
MATLAB初心者です。
「0」「1」で判別したデータを下図のように並び替えをしたいです。
(X座標をExcelのA~Z...などに、Y座標データをExcelの1~nに反映させたい)
現在、X座標とY座標、それらに対応した「0」「1」の各種csv列データがあります。
そこでMATLAB内で行列をつくり、Excelにインポートしたいのですが
「0」「1」のデータにXY座標のデータを持たせ、行列を作る方法が分かりません。
有識者の方の力を
貸していただきたいです。
貸していただきたいです。채택된 답변
Atsushi Ueno
2022년 12월 18일
편집: Atsushi Ueno
2022년 12월 18일
0 개 추천
質問の添付図をExcelファイル(zero_one.xls)に起こしました。これをmapとします。
まず逆順でmapを元のデータ(org)に変換します。それをまた、orgからmapに変換します。
%% Excelデータ(map)から逆順で元のデータを再現する
map = readmatrix('zero_one.xls');
[idx,idy] = meshgrid(1:size(map,1),1:size(map,2)); % X座標とY座標を作る
org = [idx(:),idy(:),map(:)]; % 元データ
writematrix(org,'index.csv'); % X座標とY座標、それらに対応した「0」「1」の各種csv列データを再現
type index.csv
1,1,0
1,2,0
1,3,0
1,4,0
1,5,0
1,6,0
1,7,0
1,8,0
1,9,0
1,10,0
1,11,0
1,12,0
1,13,0
1,14,0
1,15,0
1,16,0
1,17,0
1,18,0
1,19,0
1,20,0
1,21,0
1,22,0
1,23,0
1,24,0
1,25,0
1,26,0
1,27,0
1,28,0
1,29,0
1,30,0
1,31,0
1,32,0
1,33,0
1,34,0
1,35,0
1,36,0
1,37,0
1,38,0
1,39,0
2,1,0
2,2,0
2,3,0
2,4,0
2,5,0
2,6,0
2,7,0
2,8,0
2,9,0
2,10,0
2,11,0
2,12,0
2,13,0
2,14,0
2,15,0
2,16,0
2,17,0
2,18,0
2,19,0
2,20,0
2,21,0
2,22,0
2,23,0
2,24,0
2,25,0
2,26,0
2,27,0
2,28,0
2,29,0
2,30,0
2,31,0
2,32,0
2,33,0
2,34,0
2,35,0
2,36,0
2,37,0
2,38,0
2,39,0
3,1,0
3,2,0
3,3,0
3,4,0
3,5,0
3,6,0
3,7,0
3,8,0
3,9,0
3,10,0
3,11,0
3,12,0
3,13,0
3,14,0
3,15,0
3,16,0
3,17,0
3,18,1
3,19,0
3,20,0
3,21,0
3,22,0
3,23,0
3,24,0
3,25,0
3,26,0
3,27,0
3,28,0
3,29,0
3,30,0
3,31,0
3,32,0
3,33,0
3,34,1
3,35,1
3,36,0
3,37,1
3,38,1
3,39,1
4,1,1
4,2,1
4,3,1
4,4,1
4,5,1
4,6,1
4,7,1
4,8,1
4,9,1
4,10,1
4,11,1
4,12,1
4,13,1
4,14,1
4,15,1
4,16,0
4,17,1
4,18,1
4,19,1
4,20,1
4,21,1
4,22,1
4,23,1
4,24,1
4,25,1
4,26,1
4,27,1
4,28,1
4,29,1
4,30,1
4,31,1
4,32,1
4,33,1
4,34,1
4,35,0
4,36,0
4,37,0
4,38,0
4,39,0
5,1,0
5,2,0
5,3,0
5,4,0
5,5,0
5,6,0
5,7,0
5,8,0
5,9,0
5,10,0
5,11,0
5,12,0
5,13,0
5,14,0
5,15,0
5,16,0
5,17,0
5,18,0
5,19,0
5,20,0
5,21,0
5,22,0
5,23,0
5,24,0
5,25,0
5,26,0
5,27,0
5,28,0
5,29,0
5,30,0
5,31,0
5,32,0
5,33,0
5,34,0
5,35,0
5,36,0
5,37,0
5,38,0
5,39,0
6,1,0
6,2,0
6,3,0
6,4,0
6,5,1
6,6,1
6,7,1
6,8,1
6,9,0
6,10,0
6,11,0
6,12,0
6,13,0
6,14,0
6,15,0
6,16,0
6,17,0
6,18,0
6,19,0
6,20,0
6,21,0
6,22,0
6,23,0
6,24,1
6,25,1
6,26,1
6,27,1
6,28,0
6,29,0
6,30,0
6,31,0
6,32,0
6,33,0
6,34,0
6,35,0
6,36,0
6,37,0
6,38,0
6,39,0
7,1,0
7,2,0
7,3,0
7,4,1
7,5,0
7,6,0
7,7,0
7,8,0
7,9,0
7,10,0
7,11,0
7,12,0
7,13,0
7,14,0
7,15,0
7,16,0
7,17,1
7,18,1
7,19,1
7,20,1
7,21,1
7,22,1
7,23,1
7,24,1
7,25,0
7,26,0
7,27,0
7,28,0
7,29,0
7,30,0
7,31,0
7,32,0
7,33,0
7,34,0
7,35,1
7,36,1
7,37,1
7,38,1
7,39,1
8,1,1
8,2,1
8,3,1
8,4,1
8,5,0
8,6,0
8,7,0
8,8,0
8,9,0
8,10,0
8,11,0
8,12,0
8,13,0
8,14,0
8,15,1
8,16,1
8,17,0
8,18,0
8,19,0
8,20,0
8,21,0
8,22,0
8,23,0
8,24,0
8,25,0
8,26,0
8,27,0
8,28,0
8,29,0
8,30,0
8,31,0
8,32,0
8,33,0
8,34,1
8,35,1
8,36,0
8,37,0
8,38,0
8,39,0
9,1,0
9,2,0
9,3,0
9,4,0
9,5,0
9,6,0
9,7,0
9,8,0
9,9,0
9,10,0
9,11,0
9,12,0
9,13,0
9,14,1
9,15,1
9,16,0
9,17,0
9,18,0
9,19,0
9,20,1
9,21,1
9,22,1
9,23,1
9,24,1
9,25,1
9,26,0
9,27,0
9,28,0
9,29,0
9,30,0
9,31,0
9,32,0
9,33,1
9,34,1
9,35,1
9,36,1
9,37,1
9,38,1
9,39,1
10,1,1
10,2,1
10,3,1
10,4,1
10,5,1
10,6,0
10,7,0
10,8,0
10,9,0
10,10,0
10,11,1
10,12,1
10,13,1
10,14,1
10,15,1
10,16,1
10,17,1
10,18,1
10,19,1
10,20,1
10,21,0
10,22,0
10,23,1
10,24,1
10,25,0
10,26,0
10,27,0
10,28,0
10,29,0
10,30,1
10,31,1
10,32,1
10,33,1
10,34,1
10,35,1
10,36,1
10,37,0
10,38,0
10,39,0
11,1,0
11,2,0
11,3,1
11,4,1
11,5,1
11,6,0
11,7,0
11,8,0
11,9,0
11,10,1
11,11,1
11,12,0
11,13,0
11,14,0
11,15,1
11,16,1
11,17,0
11,18,0
11,19,0
11,20,0
11,21,0
11,22,1
11,23,1
11,24,1
11,25,0
11,26,0
11,27,0
11,28,0
11,29,0
11,30,0
11,31,0
11,32,0
11,33,0
11,34,1
11,35,1
11,36,0
11,37,0
11,38,0
11,39,0
12,1,0
12,2,0
12,3,1
12,4,1
12,5,0
12,6,0
12,7,0
12,8,0
12,9,0
12,10,0
12,11,0
12,12,0
12,13,0
12,14,0
12,15,0
12,16,0
12,17,0
12,18,0
12,19,0
12,20,0
12,21,0
12,22,1
12,23,1
12,24,0
12,25,0
12,26,0
12,27,0
12,28,0
12,29,0
12,30,0
12,31,0
12,32,0
12,33,0
12,34,0
12,35,0
12,36,0
12,37,0
12,38,0
12,39,0
13,1,0
13,2,1
13,3,1
13,4,0
13,5,0
13,6,0
13,7,0
13,8,0
13,9,0
13,10,0
13,11,0
13,12,0
13,13,0
13,14,0
13,15,0
13,16,0
13,17,0
13,18,0
13,19,0
13,20,0
13,21,0
13,22,0
13,23,0
13,24,0
13,25,0
13,26,0
13,27,0
13,28,0
13,29,0
13,30,0
13,31,0
13,32,0
13,33,0
13,34,0
13,35,0
13,36,0
13,37,0
13,38,0
13,39,0
14,1,0
14,2,0
14,3,0
14,4,0
14,5,0
14,6,0
14,7,0
14,8,0
14,9,0
14,10,0
14,11,0
14,12,0
14,13,0
14,14,0
14,15,0
14,16,0
14,17,0
14,18,0
14,19,0
14,20,0
14,21,0
14,22,0
14,23,0
14,24,0
14,25,0
14,26,0
14,27,0
14,28,0
14,29,0
14,30,0
14,31,0
14,32,0
14,33,0
14,34,0
14,35,0
14,36,0
14,37,0
14,38,0
14,39,0
15,1,0
15,2,0
15,3,0
15,4,0
15,5,0
15,6,0
15,7,0
15,8,0
15,9,0
15,10,0
15,11,0
15,12,0
15,13,0
15,14,0
15,15,0
15,16,0
15,17,0
15,18,0
15,19,0
15,20,0
15,21,0
15,22,0
15,23,0
15,24,0
15,25,0
15,26,0
15,27,0
15,28,0
15,29,0
15,30,0
15,31,0
15,32,0
15,33,0
15,34,0
15,35,0
15,36,0
15,37,0
15,38,0
15,39,0
16,1,0
16,2,0
16,3,0
16,4,0
16,5,1
16,6,1
16,7,1
16,8,1
16,9,0
16,10,0
16,11,0
16,12,0
16,13,0
16,14,0
16,15,0
16,16,0
16,17,0
16,18,0
16,19,0
16,20,0
16,21,0
16,22,0
16,23,0
16,24,1
16,25,1
16,26,1
16,27,1
16,28,0
16,29,0
16,30,0
16,31,0
16,32,0
16,33,0
16,34,0
16,35,0
16,36,0
16,37,0
16,38,0
16,39,0
17,1,0
17,2,0
17,3,0
17,4,0
17,5,1
17,6,1
17,7,1
17,8,1
17,9,0
17,10,0
17,11,0
17,12,0
17,13,0
17,14,0
17,15,0
17,16,0
17,17,0
17,18,0
17,19,0
17,20,0
17,21,0
17,22,0
17,23,0
17,24,0
17,25,1
17,26,1
17,27,1
17,28,0
17,29,0
17,30,0
17,31,0
17,32,0
17,33,0
17,34,0
17,35,0
17,36,0
17,37,0
17,38,0
17,39,0
18,1,0
18,2,0
18,3,0
18,4,0
18,5,0
18,6,1
18,7,1
18,8,0
18,9,0
18,10,0
18,11,0
18,12,0
18,13,0
18,14,0
18,15,0
18,16,0
18,17,0
18,18,0
18,19,0
18,20,0
18,21,0
18,22,0
18,23,0
18,24,0
18,25,1
18,26,1
18,27,0
18,28,0
18,29,0
18,30,0
18,31,0
18,32,0
18,33,0
18,34,0
18,35,0
18,36,0
18,37,0
18,38,0
18,39,0
19,1,0
19,2,1
19,3,1
19,4,1
19,5,1
19,6,1
19,7,1
19,8,0
19,9,0
19,10,0
19,11,0
19,12,0
19,13,0
19,14,0
19,15,0
19,16,0
19,17,0
19,18,0
19,19,0
19,20,0
19,21,1
19,22,1
19,23,1
19,24,1
19,25,1
19,26,1
19,27,0
19,28,0
19,29,0
19,30,0
19,31,0
19,32,0
19,33,0
19,34,0
19,35,0
19,36,0
19,37,0
19,38,0
19,39,0
%% 元データ(org)からExcelデータと同じデータを作る
clear all % 一旦メモリを全てクリアする
org = readmatrix('index.csv'); % 元データ読み込み
org = sortrows(org); % データ取得順がバラバラならソートする % 列優先で[X座標,Y座標,1/0データ]の順
map2 = reshape(org(:,3),[max(org(:,1)),max(org(:,2))]);
writematrix(map2,'zero_one2.csv'); % writematrix(map2,'zero_one2.xls'); 表示の為csvで保存
type zero_one2.csv
0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1
0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1
0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1
0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1
0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1
0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,1,1,0,0,1,1,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
댓글 수: 3
Naoya Oka
2022년 12월 18일
ありがとうございます。
私の日本語力が足らず、質問の意図が伝わらなくて申し訳ありません。
例えば添付したExcelが元データの時、上図のように並び替えたい場合は教えていただいたスクリプトで対応可能でしょうか?
Atsushi Ueno
2022년 12월 18일
>質問の意図が伝わらなくて申し訳ありません
添付の demo1.xlsx 通りのデータを想定していましたよ。質問の意図は明確に伝わっています。
org = readmatrix('https://jp.mathworks.com/matlabcentral/answers/uploaded_files/1234767/demo1.xlsx'); % 元データ読み込み
org = sortrows(org); % データ取得順がバラバラならソートする % 列優先で[X座標,Y座標,1/0データ]の順
map2 = reshape(org(:,3),[max(org(:,1)),max(org(:,2))]);
writematrix(map2,'zero_one2.csv'); % writematrix(map2,'zero_one2.xls'); 表示の為csvで保存
type zero_one2.csv
0,1,1,0,1
0,1,0,1,0
0,0,0,1,0
0,1,1,1,0
1,0,1,0,0
Naoya Oka
2022년 12월 18일
ありがとうございます!
上手く進めることができました。
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 スプレッドシート에 대해 자세히 알아보기
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)