Bye Bye Moore

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

2018-10-01から1ヶ月間の記事一覧

Boost::ublasで行列計算する その3:ゼロ行列・単位行列

cpp

実際のところ ゼロ行列 #include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/io.hpp> int main () { using namespace boost::numeric::ublas; zero_matrix<double> m (3, 3); std::cout << m << std::endl; } 単位行列 #include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/io.hpp> int main …</boost/numeric/ublas/io.hpp></boost/numeric/ublas/matrix.hpp></double></boost/numeric/ublas/io.hpp></boost/numeric/ublas/matrix.hpp>

Boost::ublasで行列計算する その2:加法・乗法

cpp

#include <iostream> #include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/io.hpp> namespace ublas = boost::numeric::ublas; using namespace std; int main() { // double型を要素とする行列 ublas::matrix<double> v(3,3); ublas::matrix<double> u(3,3); // 各要素の参照と代入 v(0,0) = 3.0; v(0,1) = 0.0; v(0,2…</double></double></boost/numeric/ublas/io.hpp></boost/numeric/ublas/matrix.hpp></iostream>

Boost::ublasで行列計算する その1:行列を生成

cpp

BoostのサブライブラリであるuBlasでは行列やベクトルのような線形代数の計算を高速かつ見通しよく実施することができます。 実際のところ 導入 Ubuntuでの導入なら、apt-get経由でlibboost-devを使ったほうが楽です。 私のように、単に試したいという動機な…

SpreadSheetで開始日と終了日から色つきバーめいたものを入れる

shuzo-kino.hateblo.jp shuzo-kino.hateblo.jpの流れで…… 実際のところ 画像のように、一列目に日付、C行に開始日、D行に終了日がある状態で =IF(AND( (INDIRECT(ADDRESS(row(),3)) <= F$1),(INDIRECT(ADDRESS(row(),4)) >= F$1) ), "1", "")これで数値が記…

【読書メモ】ICT農業の環境制御システム製作: 自分でできる「ハウスの見える化」

ICT農業の環境制御システム製作: 自分でできる「ハウスの見える化」作者: 安東赫,中野明正,栗原弘樹出版社/メーカー: 誠文堂新光社発売日: 2018/08/16メディア: 単行本この商品を含むブログを見る農業系雑誌「農耕と園芸」に掲載されていた連載をもとにした…

【自習メモ】typedefとusing

typedefやusingはc/cppにて独自のデータ型を作るときに使用する予約語です。 マイコンを跨いだ実装でありがちな取り扱いビット数の差も、これらを用いて吸収できます。 基本型の機能を極力使いたいけど、一部振る舞いだけ変えたいとき、 あるいはアーキテク…

boostのforeach文とsplitで改行等特定シンボル毎にリスト化する

cpp

for文よりスマートに記述できるケースも 実際のところ #include <boost/algorithm/string.hpp> #include <string> #include <list> #include <iostream> #include <boost/foreach.hpp> using namespace std; int main() { string str ("1,2\n3,4\n5,6"); string delim ("\n"); list<string> list_string; boost::split(list_string, str, boos</string></boost/foreach.hpp></iostream></list></string></boost/algorithm/string.hpp>…

boostライブラリでCSVをパース

boostはC++標準委員の中の人が関わってつくった、最強ライブラリです。 数学系やパーサー系の強力なのが揃っています。 実際のところ #include <iostream> #include <string> #include <boost/tokenizer.hpp> #include <boost/foreach.hpp> using namespace std; typedef boost::tokenizer< boost::escaped_list_separat</boost/foreach.hpp></boost/tokenizer.hpp></string></iostream>…

write関数で所定の長さのデータを書き込む

C

エラー対策もブン投げた最小構成は以下のような感じ。 ただし、ファイルはちゃんと閉じましょう。 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> int main(void) { int fd; char buf[256] = "1,2,3\n4,5,6\n7,8,9\n"; ssize_t ret; fd = open("./data.log", O_CR</unistd.h></fcntl.h></sys/stat.h></sys/types.h>…

stdoutはファイルポインタとして渡せる

C

いままでC言語やってきて今更知ったのですが……stdoutはファイルポインタの型をもつため ファイルポインタを引数にもつ関数に渡す事ができます。いままで、なんとなく使ってました……。 getc(stdout); とか fputs("hello, world.", stdout); stdin、stdout、st…

【読書メモ】上達の法則

上達の法則―効率のよい努力を科学する (PHP新書)作者: 岡本浩一出版社/メーカー: PHP研究所発売日: 2002/05/01メディア: 新書購入: 22人 クリック: 259回この商品を含むブログ (141件) を見るいわゆる意識高い系でなく、ちゃんとした研究を土台にして上達と…

【読書メモ】 その数式、プログラムできますか?

その数式、プログラムできますか?作者: アレクサンダー・A・ステパノフ,ダニエル・E・ローズ出版社/メーカー: 翔泳社発売日: 2015/05/20メディア: Kindle版この商品を含むブログ (1件) を見る仕事の関係で、アカデミアな方との共同実装をする必要がでてきま…

【イベントログ】Japan Robot Week 2018に行ってきました

Japan Robot Week 2018に行ってきました メインはTechShare社様の展示ヘルプです。 ロボットアームのDobotシリーズは展示会でも大好評でした! 他のブースの様子 抹茶入れるロボットアーム サンプル装置というレベルを超えた格好いいやつ robotisの人型 120…

【イベントログ】CEATEC2018行ってきました

ハイカラな入場処理 展示会恒例の入場行列がありませんでした! ソレコンの会社 部品屋さん 展示法が面白い ラズパイで画処理 opencv などでなく、 cのような低級言語で自前の処理系を書いてるから早いのだそうです。 ……分野外なのでまるでわからない……。 写…

パイプ経由で出力をうけとる時、単純にscanf使えばいい

考えてみりゃ当たり前だったのですが……パイプ経由で出力をうけとる時、単純にscanf使えばいいです。 実際のところ #include <stdio.h> int main() { char str[1][0x100] = { "" }; scanf("%s", str[0]); printf("%s is good!\n", str[0]); return 0; } $ echo 'hoge' </stdio.h>…

文字列を複数持たせる場合

#include <stdio.h> int main() { //多次元配列 char str[2][0x10] = { "", "yeah!" }; //ポインタ変数の配列 char *str2[2] = { "", "yeah!!" }; printf("%p,%p\n", &str[0], &str[1]); printf("%p,%p\n", &str2[0], &str2[1]); return 0; } 多次元配列が宣言通りの</stdio.h>…

Ubuntu18上でmbed開発 その2:ボードに導入

shuzo-kino.hateblo.jp の続き。 バイナリをゲット コンパイルをおすと、 設定に合わせてコンパイルされ…… おわると、binが自動ダウンロードされます。 以降、これのファイル名をYOUR_BINFILEとしておきます。 ボードの用意 繋ぎ方はこんな塩梅。 詳細はこち…

【読書メモ】「稼ぐ力」を身につけた9人のビジネスストーリー それ、売りますか?貸しますか?運用しますか?無料という手もありますよ。

「稼ぐ力」を身につけた9人のビジネスストーリー それ、売りますか?貸しますか?運用しますか?無料という手もありますよ。作者: 泉正人出版社/メーカー: 朝日新聞出版発売日: 2017/09/20メディア: 単行本この商品を含むブログを見るよくある起業系の本です。 …

【読書メモ】暗号技術入門 秘密の国のアリス

新版暗号技術入門 秘密の国のアリス作者: 結城浩出版社/メーカー: ソフトバンククリエイティブ発売日: 2008/11/22メディア: 単行本購入: 46人 クリック: 720回この商品を含むブログ (82件) を見る学生時代に買って、かるく流し読みしたっきりの本です。 最近…

【イベントログ】次世代農業エクスポに行ってきました

Ubuntu18上でmbed開発 その1:開発環境編

mbedはARM系ボードの開発環境です。 Arduinoと比較して高機能かつ本体に潜った書き方ができます。 ユーザー層もややプロ/研究者よりのため、公式フォーラムがそのまんまトラブルシュートに使えたりします。 さらに、登録ユーザー自身が公式に色々技術投稿で…

VirtualBoxがエラー吐いて止まったら真っ新にしてから再インストするが吉

OSをバックアップから復旧したところ、Virtualboxがマトモに動かなくなってしまいました。dmg付属のアンイストーラーをつかった上で再インストールしてもダメ。 kextが悪さをしているらしいという情報がありつつも、 pgrepでみてもそれらしいものは見つから…

R1C1記法がうまく動かないならINDIRECT関数を使うというても

shuzo-kino.hateblo.jp以前のR1C1記法の記事 のような動きを実装する場合、INDIRECT関数越しにR1C1を指定するケースでは =SUM(indirect(r[-3]c[0]):indirect(R[-1]C[0]))とった風になります。 参考もと Google スプレッドシートで セル参照にR1C1 形式を利用…

【イベントログ】スチームパーク2018にいってきました

スチームパンク専門のクラフト即売会、スチームパークに今年もいってきました。 ちばとかいう僻地から出てきた蛮族なので、歌舞伎町と聞くと恐怖で足が動かなくなる— 木野修造@零細事業主 (@shuzo_kino) October 8, 2018ちばの蛮族が勇気を振り絞って歌舞伎…

【イベントログ】技術書展5にいってきました

技術書オンリーの即売会、技術書展5にいってきました。 今回から会場を池袋に移しての開催です。Twitterの前情報にて11時の開始前から1000人オーバーの入場待ちが出ているとの話を聞いていたので 新宿で諸用をすませ13時に会場着。#技術書典5 、待ち時間ゼ…

【読書メモ】現代暗号入門 いかにして秘密は守られるのか(ブルーバックス)

現代暗号入門 いかにして秘密は守られるのか (ブルーバックス)作者: 神永正博出版社/メーカー: 講談社発売日: 2017/10/18メディア: 新書この商品を含むブログを見る仕事で使う可能性があったので、予習のため購入。 公開鍵、ブロックチェーンと、何となくは…

小田嶋隆のコラム道

小田嶋隆のコラム道作者: 小田嶋隆出版社/メーカー: ミシマ社発売日: 2012/05/21メディア: 単行本(ソフトカバー)購入: 4人 クリック: 35回この商品を含むブログ (22件) を見るド直球なタイトルが目を引く、物書きノウハウ本です。作者の小田嶋氏はいわゆる…

GASで数式を入力する その2:R1C1形式の座標指示

前回のsetFormula関数はA3、Z9みたいな感じでセルを指示してやっていました。 今回のsetFormulaR1C1関数はR1C1形式という相対的な座標指示ができる子です。 ……わたし、この関数を知るまでR1C1形式を知りませんでした(白目 実際のところ A4にそれより上3つの…

GASで数式を入力する その1:普通の座標指示

実際のところ A1にB列の合算を入力する場合、以下のようにします。 var sheet = SpreadsheetApp.getActiveSheet(); sheet.getRange('A1').setFormula('=SUM(B2:B)') 参考もと Class Range | Apps Script | Google Developers

GASのspreadsheet用独自関数をつくる

spreadsheetファイルに紐づいたgsファイル上で そのファイルでしか使わない独自関数を定義できます。 実際のところ 単純に、数値をぶち込むと+1してくれるような関数MYFUNCを考えます。 /** * わたしの素敵な関数 * * @param {number} 任意の数値 * @return …