Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

octave

numel関数でオブジェクト数を数える

実際のところ a = 1; b = ones (2, 3); numel (a, b) %> ans = 6 参考もと Function Reference: numel

"error: struct cannot be indexed with {"と出たら、ちゃんと構造体を読みだせていない

Octaveで実装していた際、 error: struct cannot be indexed with { execution error in graphics callback functionなんてエラーがでました。これは文字通り、構造体として取り扱われているデータが、ちゃんと構造体読みだせていない事を示します。私の場合…

octaveにあるunwind_protect構文はエラーでも通常処理でも発火するとunwind_protect_cleanupに移行する

unwind_protectなる構文を見つけました。 とはLispで使われてる構文らしい。 unwindableで巻き戻しできないという意味があるので、unwind_protectは巻き戻し防止って訳でしょうかね……? Try-Catch構文は別に存在しているらしく、使い分けが……??? 調べてみ…

Octaveで三次元的に座標をプロットする

実際のところ XYZ軸のところに3点ほど、青い十字記号をプロットする方法は以下の通り。 X = [0 10 100]; Y = [110 0 10]; Z = [50 200 50]; plot3(X,Y,Z,'b+'); 一点追加して、プロットを赤〇に X(end+1) = 89 Y(end+1) = 89 Z(end+1) = 89 plot3(X,Y,Z,'ro…

OctaveでArduino IDEのシリアルプロッタみたいなのをやる

OctaveでArduino IDEのシリアルプロッタみたいなのをやる。 実際のところ $ git clone https://gitlab.com/ville-klar/splot.gitディレクトリに移動し、Octaveをひらく $ cd ville-klar/splot $ octave --gui splot.mGUI上で splot /dev/ttyUSB0 115200 Ardu…

Octave/Matlabで返り値をもつ関数をつくる

やっとくOctaveを使い慣れてきたので……いままで書き捨て気味にやってた物の取りまとめをはじめました。 で、今更問題になったのが……Octaveは関数の返り値って……どうやるんだろう?? 実際のところ なんと……返り値は関数の頭にイコールでつなげて書く様子。 …

OctaveでJSONファイルをパースする

みんな大好きJSONファイル ネット配布情報なんかはJSONが多いですし、 XMLよりは視覚的に易しい構造なので設定ファイルとしても有用。 実際のところ Ubuntuに導入 パッケージを更新 $ sudo add-apt-repository ppa:fangq/ppa $ sudo apt update導入 $ sudo a…

GNU OctaveとArduinoを連携する その3:GUIのスライドバーなどと値を連携する

shuzo-kino.hateblo.jp と shuzo-kino.hateblo.jp を応用して、ArduinoとOctaveのGUIを連携する方法について 実際のところ 今書いてまs

OctaveでBLE接続する実験

MatlabにはBLEで接続できる実装が揃っています。で、OctaveにはシリアルだのSPIだのの通信系が揃っています。 ならBLEをOctaveでも使えるのでは? というメモ書き 実際のところ 今書いてまs 参考もと Bluetooth Low Energy での通信 - MATLAB & Simulink - M…

OctaveのGUIで「 nested functions not implemented in this context」とか言われたら

error: parse error near line 23 of file C:\Users\shiro\octGUI.m nested functions not implemented in this context 構成は何も変えていないのに、なぜかちゃんと認識されてないこれをCLIの方にブチ込んでGUIのメイン関数相当を実行したら、なぜか動く。…

octave外部アプリケーション、またはコマンドを実行する

外部コマンド実行は定番中の定番ですね。 MatlabやOctaveにも、それが備わっています。 外でつくったPython製スクリプトを動かしたり、lsコマンドでディレクトリみたり。 実際のところ 簡易記法の「!cmd」は実装されていないようなので、注意。uicontrolでは…

OctaveのGUIでボタン押下時に値を渡す

オブジェクト側 引数は配列みたいな形で「@関数名」のあとにカンマで続ける hmesh = uicontrol('Style','pushbutton',... 'String','Mesh','Position',[315,180,70,25],... 'Callback',{@meshbutton_Callback, 1, 80}); コールバック側 function meshbutton_…

GNU Octaveで画像を重ね合わせ三次元モデルをつくる その3:複数枚の画像を三次元的にプロット

shuzo-kino.hateblo.jp の続き。 だいぶ間が開いてしまいましたが……。 実際のところ MATLABにはsliceviewerという、狙った機能そのまんまなのがあります。一方、Octaveにはsliceというのもあります。 UIcontorlも使って、何とかsliceviewerみたいなのができ…

Octaveで画像のマスク処理を行う

%%%%%画像マスク化 pkg load image; img = rgb2gray(imread(IMAGEURL)); %%グレイスケール化 BWs = img > 20; %% 20より上の濃さのみ残す BW2 = bwareaopen(BWs, 300); %% 面積300より小さいのを消したものをマスクとして設定 img(BW2 == 0) = 0; %%マスクを…

octaveで連番ファイルの処理をやる際のファイル名の作り方

octaveで連番ファイルを彼是処理したい場合の話。 実際のところ "YOURIMAGEPATH"の中に、"image(NUM).png"というルールで格納されている画像にあれこれ処理したい場合。 処理の方は簡単に、読みだしてグレースケール化し行列にぶち込むだけ。ファイルパスの…

Raspi ZeroにOctaveをいれる

RasPi ZeroにOctaveを入れた際、ほかとちょっとちがったのでメモ。 実際のところ 素だとなぜかエラーがおこるのでJavaの環境を先に構築 $ sudo apt install openjdk-8-jre-headless openjdk-8-jreこの状態から $ sudo apt-get install octave Xwindowで運用…

GNU OctaveとArduinoを連携する その2:ArduinoからOctaveにシグナル

実際のところ 今書いてまs 参考もと octave.sourceforge.io Arduino package - Octave

GNU OctaveとArduinoを連携する その1:環境構築とLチカ

MATLABにArduinoとの連携パッケージがあります。 その競合品であるGNU Octaveにも、あります。 実際のところ pkg install -forge arduinopkg load arduino Ardino側の用意 パッケージを読むと、ArduinoIDEを起動するコマンドが実行できるのでこいつを利用 ar…

Octaveで画像の画素情報を取得

Octaveで画像の画素情報を取得する場合はimpixelが使えます。 実際のところ RubyやらPythonやらと違い、対話型シェルでやっても文字列はそのまんまでは返ってきません。 結果をみたければ、変数に格納するかdisp関数と組み合わせて使います。 disp(impixel(i…

【読書メモ】Octaveの精義

Octaveの精義―フリーの高機能数値計算ツールを使いこなす作者:松田 七美男発売日: 2019/10/01メディア: 単行本

GNU Octaveで画像を重ね合わせ三次元モデルをつくる その2:平面的な図形を出す

TIFF等々の元データがある場合や、出したい図形の数式がある場合は兎も角、 今回の私のように何かしらの画像を生成し、それをミルフィーユ風に積み重ねたい場合は もとになる平面画像の生成方法がそもそも問題になると思い立ち。 実際のところ 通常、三次元…

GNU Octaveで画像を重ね合わせ三次元モデルをつくる その1:isosurfaceメソッドで行列データをもとに三次元的にプロットする

isosurfaceは日本語で等値面といい、身近なトコだと地図の等高線みたいなもんです。 それを重ね合わせれば、三次元モデルができるというお話。 取っ掛かりとして、三次元データの重ね合わせで疑似的な3D表示をすることを目指します。 実際のところ まずは写…

GNU octaveでプロット結果にボタンやスライドバーつけるならuicontrol

GNU octaveでプロット結果にボタンやスライドバーつけるならuicontrol ある計測結果をプロットしたけど、少し条件を変えてもみたい でも少し値弄ってレンダリングし直すのも何か違う 欲を言えば、客先でデモもできれば理想……そういう時はuicontrolで色々設定…

GNU OctaveをWindows10環境にいれる

大学で数値解析ソフトウェアといえばMATLABがありますね。 が、ウチみたいな零細企業がオイソレと購入できるもんでもありません。 まして、プロジェクトのごく一部のための数値解析目的ならなおの事……。 こういうとき、GNUプロジェクトの一部であるGNU Octav…