インデックスの配列範囲を超えているときの対処方法

現在、txtファイルとしてn行4列のファイルがあります。
1列目からx、y、zの座標になっており、4列目は2値化した輝度値になります。
このファイルを読み込んで、3次元的に図形を確認します。
logData = readmatrix('平面No.2再 1.txt');
cData = repmat(logData(:,4) ./ 255, 1, 3); % 255:白 0:黒
s = scatter3(logData(:,1), logData(:,2), logData(:,3), 'CData', cData, 'Marker', '.', 'MarkerEdgeColor', 'flat');
上記のシステムを適用すると以下のようなエラーメッセージが表示されます。
位置 2 のインデックスが配列範囲を超えています。インデックスは 3 を超えてはなりません。
テキストファイルが1万行近くの時は作動したのですが、今回は30万行近くあるからダメなのでしょうか。
もしダメであれば、解決方法をご教授願います。
どうか知恵をお貸しいただけないでしょうか。よろしくお願いします。

답변 (1개)

Hernia Baby
Hernia Baby 2022년 12월 9일

1 개 추천

頂いたtxtの中を見たのですがn×3のデータになっています。つまり4列目が存在してません。
ですので
logData(:,4)
で4列目がないやんけ!って怒られています。

댓글 수: 1

Atsushi Ueno
Atsushi Ueno 2022년 12월 9일
>位置 2 のインデックスが配列範囲を超えています。インデックスは 3 を超えてはなりません。
エラーの原因は@Hernia Babyさんの回答通りです。質問に記載された上記のエラーも再現しました。
>現在、txtファイルとしてn行4列のファイルがあります。(中略)4列目は2値化した輝度値になります。
なので、単に添付ファイルに4列目の2値化した輝度値データを追加し忘れていると思います。
>テキストファイルが1万行近くの時は作動したのですが、今回は30万行近くあるからダメなのでしょうか。
30万行近くあるからダメではないです。
実際に動かして確認してみましたが、色情報が無い状態で何やら表示されました。

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품

질문:

2022년 12월 9일

댓글:

2022년 12월 9일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!