インデックスの配列範囲を超えているときの対処方法
254 views (last 30 days)
Show older comments
現在、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万行近くあるからダメなのでしょうか。
もしダメであれば、解決方法をご教授願います。
どうか知恵をお貸しいただけないでしょうか。よろしくお願いします。
0 Comments
Answers (1)
Hernia Baby
on 9 Dec 2022
頂いたtxtの中を見たのですがn×3のデータになっています。つまり4列目が存在してません。
ですので
logData(:,4)
で4列目がないやんけ!って怒られています。
1 Comment
Atsushi Ueno
on 9 Dec 2022
>位置 2 のインデックスが配列範囲を超えています。インデックスは 3 を超えてはなりません。
>現在、txtファイルとしてn行4列のファイルがあります。(中略)4列目は2値化した輝度値になります。
なので、単に添付ファイルに4列目の2値化した輝度値データを追加し忘れていると思います。
>テキストファイルが1万行近くの時は作動したのですが、今回は30万行近くあるからダメなのでしょうか。
30万行近くあるからダメではないです。
実際に動かして確認してみましたが、色情報が無い状態で何やら表示されました。
See Also
Categories
Find more on Resizing and Reshaping Matrices in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!