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

235 visualizzazioni (ultimi 30 giorni)
雄大
雄大 il 9 Dic 2022
Commentato: Atsushi Ueno il 9 Dic 2022
現在、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万行近くあるからダメなのでしょうか。
もしダメであれば、解決方法をご教授願います。
どうか知恵をお貸しいただけないでしょうか。よろしくお願いします。

Risposte (1)

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

Accedi per commentare.

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!