現在、画像の輝度値の分散を抽出するプログラムを学んでいます。 その際に、以下のようなプログラムが出てきますが分からないです。
b=Tiff(strcat(dir,'sample.tiff'),'r');
csvwrite(strcat('csv/red_',num2str(x),',csv'),data);
上のプログラムではrというTiffファイルの作成を、下のプログラムではdataというファイルの書き込みを行っていると考えました。 しかし、真ん中のstrcat関数では何を意味してるのか分からないです。 ご教示願います。

8 Comments

strcat 関数のドキュメンテーションページは確認されましたか? MATLAB上だと
doc strcat
で確認できますし、Webサイトであれば下記。
Taiki Murakawa
Taiki Murakawa on 5 Oct 2018
コメントありがとうございます。 上記サイトは確認済みの上質問しました。
mizuki
mizuki on 5 Oct 2018
Edited: mizuki on 5 Oct 2018
> 真ん中のstrcat関数では何を意味してるのか分からないです。
Tanaka さんのご案内されたドキュメントのページにあるとおり「文字列の水平方向の結合」ではないでしょうか。
Taiki Murakawa
Taiki Murakawa on 5 Oct 2018
ドキュメントではそのように記載されたいましたが、実際にプログラムがどのように動いているのか理解出来ないです。ドキュメントの例に関しては理解できました。 しかし、今回の場合は変数ではなくtiffファイルが連結の対象となっています。これはtiffファイルの輝度値を示した行列が連結しているのでしょうか。また、dirによって何をリストしているのか、最後の'r'の役割もよくわからないです。 同様に下のプログラムも何をしているかがわからない状態です。
Hirokazu Tanaka
Hirokazu Tanaka on 5 Oct 2018
実際に一行一行実行しながら結果を確認すると、なんとなくそれぞれがどんな処理をするのかをイメージしやすいとは思うので、もしまだ実行されていなければぜひトライしてみてください。
無料で試せるチュートリアルです。2時間ほどで終了しますので、ぜひやってみてください。ご質問の内容であればすぐに自力で解決できるようになるはずです。
Taiki Murakawa
Taiki Murakawa on 10 Oct 2018
回答ありがとうございます。 ご指摘のように一行一行実行しながら確認してみます。 また、チュートリアルの方はやってみたのですが、自力で解決できるか分からないです。やり方が間違っていたのかもしれませんが、他に行っておくコース等あれば紹介していただけると助かります。
Hirokazu Tanaka
Hirokazu Tanaka on 10 Oct 2018
確かに使い方のチュートリアルであって、困ったときの調べ方・・などは経験次第なんでしょうか。ただ、一行一行実際に実行しながら結果を見ていく作業が有効なのは、確実かと思いますので、頑張ってください。
無料で試せるものとして他にあるのはディープラーニングのものだけのようです。。
Taiki Murakawa
Taiki Murakawa on 11 Oct 2018
ご丁寧にありがとうございます。 一行一行地道に行っていきます。また、ディープラーニングについても検討します。
ご教示ありがとうございました。

Sign in to comment.

 Accepted Answer

Hirokazu Tanaka
Hirokazu Tanaka on 5 Oct 2018

0 votes

まず、
b=Tiff(strcat(dir,'sample.tiff'),'r');
ですが、おそらく Tiff(ファイル名、'r') の構文なのかと。Tiffのドキュメンテーションページ見てもらえると、'r' の意味はファイルアクセスのタイプであることが見て取れるかと思います。
ファイル名として文字列で入力することもドキュメンテーションページで確認できますが。気になるのは strcat(dir,'sample.tiff') の意味ですが、dir という変数に入っている何らかの文字列と 'sample.tiff' をただ「結合」しています。もし dir 変数の中身が 'sample\' であれば、
strcat(dir,'sample.tiff')
'sample\sample.tiff'
と同値であり、結果として
b=Tiff(strcat(dir,'sample.tiff'),'r');
b=Tiff('sample\sample.tiff','r');
と同じ実行を意味します。
csvwrite(strcat('csv/red_',num2str(x),',csv'),data);
についても num2str が新しく加わりますが、同じように考えてみてください。

More Answers (0)

Categories

Products

Community Treasure Hunt

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

Start Hunting!