Rで解析:MATLABのコマンドが使えます「matlab」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

各種MATLABの43種類のコマンドが収録されたパッケージの紹介です。行列の操作が楽になると思います。いくつかのコマンドを紹介します。

パッケージのバージョンは1.0.4.1。windows 11のR version 4.4.1で確認しています。

スポンサーリンク

パッケージのインストール

下記コマンドを実行してください。

# パッケージのインストール
install.packages("matlab")

実行コマンド

紹介しきれていないコマンドや詳細はコメントやコマンドヘルプを確認してください。

# パッケージの読み込み
library("matlab")

# MATLAB ceil function:ceilコマンド
# 少数を繰り上げる
ceil(c(1.45, 0.045, 0.5))
#[1] 2 1 1


# MATLAB ceil function:ceilコマンド
# 少数を切り下げる
fix(c(1.45, 0.045, 0.5))
#[1] 1 0 0

# MATLAB cell function:cellコマンド
# 指定した"matrix" "array"を作成
cell(2, 2, 2)
# , , 1
# 
# [,1]      [,2]     
# [1,] numeric,0 numeric,0
# [2,] numeric,0 numeric,0
# 
# , , 2
# 
# [,1]      [,2]     
# [1,] numeric,0 numeric,0
# [2,] numeric,0 numeric,0


# MATLAB colorbar function:colorbarコマンド
# 目盛り方向を指定:locationオプション;"EastOutside","WestOutside","NorthOutside","SouthOutside"
par(mfrow = c(1, 2))
image(matrix(1:9, 3,3))
colorbar(c(1:9), location = c("EastOutside"))


# MATLAB eye function:eyeコマンド
# 恒等行列を作成
eye(4)
#      [,1] [,2] [,3] [,4]
# [1,]    1    0    0    0
# [2,]    0    1    0    0
# [3,]    0    0    1    0
# [4,]    0    0    0    1


# MATLAB factor function:factorsコマンド
# 素因数分解を行う,Rのfactorではない
factors(20)
# [1] 2 2 5


# MATLAB fileparts function:filepartsコマンド
# パスを分割する
fileparts("/home/user/filename.txt")
# $pathstr
# [1] "/home/user"
# 
# $name
# [1] "filename"
# 
# $ext
# [1] ".txt"
# 
# $versn
# [1] ""


# MATLAB find function:findコマンド
# 論理式もしくは0でない要素の位置を取得
find(c(0, 1, 0, -2, 3))
# [1] 2 4 5
find(-3:3 >= 0)
# [1] 4 5 6 7


# MATLAB matrix flip function:fliplr/flipudコマンド
# 左から右へ回転:fliplrコマンド
# 上から下へ回転:flipudコマンド
fliplr(1:9)
# flipud(1:9):一次元なのでfliplr(1:9)と同じ
# [1] 9 8 7 6 5 4 3 2 1

flipud(matrix(1:9, 3, 3))
#    [,1] [,2] [,3]
# [1,]    3    6    9
# [2,]    2    5    8
# [3,]    1    4    7


# MATLAB hilb function:hilbコマンド
# ヒルベルト行列を作成
hilb(4)
#           [,1]      [,2]      [,3]      [,4]
# [1,] 1.0000000 0.5000000 0.3333333 0.2500000
# [2,] 0.5000000 0.3333333 0.2500000 0.2000000
# [3,] 0.3333333 0.2500000 0.2000000 0.1666667
# [4,] 0.2500000 0.2000000 0.1666667 0.1428571


# MATLAB isempty function:isemptyコマンド
# オブジェクトが空かの確認
Test <- data.frame(NULL)
isempty(Test)
# [1] TRUE


# MATLAB isprime function:isprimeコマンド
# 素数であるかの確認:TRUE;1/FALSE;0
isprime(5)
# [1] 1

# MATLAB linspace function:linspaceコマンド
# 指定した数字の範囲を指定した数で等分割した結果を返す
linspace(1, 2, n = 5)
# [1] 1.00 1.25 1.50 1.75 2.00


# MATLAB logspace function:logspaceコマンド
# 指定した底10の範囲で等分割した結果を返す
logspace(1, 2, n = 5)
# [1]  10.00000  17.78279  31.62278  56.23413 100.00000


# MATLAB magic function:magicコマンド
# 行と列の和が等しいn x n行列を作成
magic(2)
#      [,1] [,2]
# [1,]    1    3
# [2,]    4    2


# MATLAB mod/rem functions:mod/remコマンド
# 除算のモジュラス:modコマンド
mod(-5, 3)
# [1] 1

# 除算の余り:modコマンド
rem(-5, 3)
# [1] -2


# MATLAB ndims function:ndimsコマンド
# 配列の次元数
ndims(2:9)
# [1] 2


# MATLAB nextpow2 function:nextpow2コマンド
# 指定値以上の最小の 2 のべき乗の指数
nextpow2(1:10)
# [1] 0 1 2 2 3 3 3 3 4 4


# MATLAB numel function:numelコマンド
# 要素のカウント
numel(2:3)
# [1] 2


# MATLAB ones/zeros functions:ones/zerosコマンド
# 要素が1の配列を作成
ones(2)
#      [,1] [,2]
# [1,]    1    1
# [2,]    1    1

# 要素が0の配列を作成
zeros(2)
#      [,1] [,2]
# [1,]    0    0
# [2,]    0    0


# MATLAB padarray function:padarrayコマンド
# 配列に追加する
# 追加量:padsizeオプション
# 追加内容:padvalオプション;数字/"circular","replicate","symmetric"
# 追加方向:directionオプション;"both","pre","post"
padarray(1:4, 1, padval = "circular", direction = "pre")
#      [,1] [,2] [,3] [,4]
# [1,]    1    2    3    4
# [2,]    1    2    3    4


# MATLAB pascal function:pascalコマンド
# パスカル行列を作成
pascal(3, 2)
#      [,1] [,2] [,3]
# [1,]    1    1    1
# [2,]   -2   -1    0
# [3,]    1    0    0


### その他コマンド #####
# imagesc, pathsep, pow2, primes, repmat, reshape, rosser,
# rot90, size, class, std, strcmp, sum, tictoc, jet.colors,
# multiline.plot.colors

少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました