MATLABプログラミング 質問箱 その4

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
2デフォルトの名無しさん:2012/09/05(水) 21:48:22.34
>>1
乙です。即死回避保守。
simulinkって制御に使う他に、
Scratchみたいなビジュアルプログラミング言語として遊べるかな?
3デフォルトの名無しさん:2012/09/05(水) 22:44:16.55
windowsなんかでparfor使った場合、マルチスレッドと言えばいいのかな?マルチプロセス?
タスクマネージャ見ると1人のworkerは1つのプロセスみたいだけど
4デフォルトの名無しさん:2012/09/06(木) 23:20:08.68
突然の質問失礼します。
if文を一つだけ抜けさせるbreak構文はどうしたらよいのでしょうか?

例えば、

for i=1:100
~
~
for j=1:1000
if ある条件
~
else
ここである条件で抜ける(Aへ)
~
~
end
end

@
end

A
5デフォルトの名無しさん:2012/09/06(木) 23:21:51.61
上記のように@へ抜けさせたいのですが、break構文を使うと、
Aにいってしまい、終了してしまいます。。
breakで@へいって、再度iの続きをさせたいのですが、どのようにやればよいのでしょうか?
なお、for jからendまで数千行あるため、ある条件で@へ出させることができれば、
非常に効率が良いです。
6デフォルトの名無しさん:2012/09/07(金) 00:01:10.96
>>5
breakなら@に行くのでは?
7デフォルトの名無しさん:2012/09/07(金) 01:50:59.55
Aに行ったんじゃなくてどっかにreturnがあってそこで終了してたとか
8デフォルトの名無しさん:2012/09/07(金) 04:31:56.15
数千行。


ふう。
9デフォルトの名無しさん:2012/09/07(金) 11:50:31.38
すみません、質問なんですが3次元の疎行列とスカラーの積を求めようとすると
以下のようなエラーが出てしまいます。

p = 18 x 24 x 4 doubleの疎行列
wx = 0.95

a = wx * p

Error using .*
ND-sparse arrays are not supported.

この計算を行うにはどのように書けば良いでしょうか?
10デフォルトの名無しさん:2012/09/07(金) 14:42:47.54
>>5
6のいうとおり、breakなら(1)に行くと思う。
(1)の前のあたりまで戻りたいのであればcontinueが使えるかも。
11デフォルトの名無しさん:2012/09/10(月) 00:45:07.98
>>9
答えかいてあんじゃん
12デフォルトの名無しさん:2012/09/10(月) 00:48:16.58
>>4
つmatlab do while
13デフォルトの名無しさん:2012/09/10(月) 01:40:47.23
どっかバグってんじゃね
その数千行を整理していけば直るのでは
14デフォルトの名無しさん:2012/09/12(水) 11:33:03.40
質問です.

uigetdir関数を用いてディレクトリへのパスを変数dir_pathに入力する関数Aを作成しました.
再度関数Aを使用する際,uigetdir関数のオプションにある,デフォルトのディレクトリを前回指定したdir_pathに設定する仕様にしたいと考えています.

しかし,関数Aの冒頭でdir_pathを読み込んだ場合,初実行の場合”未定義の変数”としてエラーを吐き出してしまいます.
何か良い方法はありませんでしょうか?
15デフォルトの名無しさん:2012/09/19(水) 23:51:52.98
これってkeyなしで使えるんですか?
16デフォルトの名無しさん:2012/09/20(木) 00:25:15.82
>>15
割れ乙
17デフォルトの名無しさん:2012/09/20(木) 01:26:06.74
すまん、割れって?
いやオクで買っても仕方ないのかなと。
18デフォルトの名無しさん:2012/09/21(金) 03:33:05.50
macにおいてMATLABを使用している者です
latexを使用するためにいろいろ設定したところプログラムが実行はできるもののずっと回帰せずにこまっています
参考にしたのが
http://osksn2.hep.sci.osaka-u.ac.jp/~taku/osx/install_xtexgsgv.html
なんですがこのページの(0.下準備)のところでターミナルでecho $shellを実行したら
/bin/bash
と表示されたので説明に従いコマンドを実行したのが原因かとおもわれます
macについてあまり詳しくないのでどうすればいいのか調べているところですがわかる方いましたらご教授おねがいします

19デフォルトの名無しさん:2012/09/21(金) 03:55:03.39
スゲー素敵なタイトルのページだね
20デフォルトの名無しさん:2012/09/21(金) 11:26:51.71
Mac板のTeXスレに行った方がいい。
21デフォルトの名無しさん:2012/09/24(月) 11:42:33.60
>>14
mファイル実行なら自動的にdir_pathはワークスペース変数に保存されて
14が考えているようにできるんだが, 関数実行だとワークスペースに保存されないから
matlabのワークスペースに保存すれようにすればいい。保存場所は関数Aと同じ場所。
matファイルの保存方法はhelpを見てちょ。
22デフォルトの名無しさん:2012/09/24(月) 11:47:24.51
>>14
言い忘れた。
1:関数Aの最初で,dir_pathをloadね。
2:uigetdir使ったらdir_pathを更新。
3:save
23デフォルトの名無しさん:2012/09/24(月) 12:00:23.39
>>4
皆が言ってるようにbreakで@に出るはず。

あと、毎回言って得るんだが、matlabでforの2重ループはやらんほうがいい。
行列使うかreshapeで一次元化してやれ。
24デフォルトの名無しさん:2012/09/24(月) 21:27:27.70
インタラクティブチュートリアルに登録するために必要事項を入力し、登録ボタンを押したのですが、
We're Sorry - an error has occurred
We apologize for the inconvenience. This error has been automatically reported to MathWorks.
We will fix this as soon as possible.
というエラーがかえってきてしまいます。
なぜでしょうか。
Chrome, Firefox, Safariそれぞれ試してみましたが、どれもダメでした。
OS X 10.7.3です。
25デフォルトの名無しさん:2012/09/24(月) 21:55:47.90
え、おれ行列要素の操作に二重for使ってしまうんだけど、どうするのが正しいんだろう
26デフォルトの名無しさん:2012/09/25(火) 16:18:30.44
>>25
やりたい処理による
どんな処理してるの?
27デフォルトの名無しさん:2012/09/25(火) 16:22:50.95
あるディレクトリないのものでループさせるとき、
Bシェルでfor day in `ls dir`みたいに書くのをMATLABだとどういう風になるのか教えて下さい。
ちなみにあるディレクトリは日付のディレクトリです。
28デフォルトの名無しさん:2012/09/25(火) 20:54:10.53
>>26
やってるのは画像処理だけど、たとえばxyの添字が共に奇数、共に偶数、それ以外、に分解するとか。
他には、各要素の上下の差と左右の差を求めて、差異が小さい方の平均値で置き換えるとか。
あともっと単純なのだと、各要素がある値より大きければその値で置き換えるってのもあったな。
適した機能があるか調べるよりループで書いちゃった方が早かったんで。
29デフォルトの名無しさん:2012/09/26(水) 00:11:45.45
>>27
日付のアドレスのファイル名を取得したいということ?
files = dir('日付のアドレス');
filenames = {files.name};
for i = 1: length(filenames)
if strcmp(filenames{i},'.') || strcmp(filenames{i},'..')
filenames(i) = [];
end
end
filenames{:} %<-ファイル名表示

今, matlabないから動作確認はしとらん。
質問抽象的すぎ。
30デフォルトの名無しさん:2012/09/26(水) 00:15:28.78
>>28
差とるんだったらdiffとかbsxfun使えよ。
31デフォルトの名無しさん:2012/09/26(水) 03:12:01.19
>>28
俺も画像処理だから多分こんな感じ
ひとつめ
I(1:2:end,1:2:end)=処理;

ふたつめ
conv2とfindつかったら?
みっつめ
I(I>0.5)=1;
画像処理でfor文は基本NG
てかmatlabはそういう使い方するもんじゃない
32デフォルトの名無しさん:2012/09/26(水) 08:18:15.55
固定のフィルタではconv2を使っていたけど、条件によって処理が別れる場合
どうすればいいかわかんなかった。findでできるんであれば調べてみるよ。
3番目はそのまんまの機能があったんだな。
33デフォルトの名無しさん:2012/09/26(水) 16:24:21.99
25です。29さん、ありがとうございます。
抽象的ですいませんでした。
具体的な質問は、DATEというディレクトリ内には120923、120924、
120925などというディレクトリがあります。
Bシェルだとfor day in 120923 120924 120925や、
for day in `ls $DATE`などとループを回していたのですが、MATLABでは
どのようなループになるか教えて下さい。
お願いします。
34デフォルトの名無しさん:2012/09/26(水) 20:41:43.37
>>33
FOLDERZ = dir('DATE');
FOLNAMES = {FOLDERZ.name};
filenames = FOLNAMES(3:end);%必ず相対パス'.'と'..'が最初に来ると仮定すると
コマンドウィンドウ
>>filenames(:)%<-表示
ans =
'120923'
'120924'
.
.
.
>>filenames{:}%<-表示
ans =
120923
ans=
120924
.
.
.
てな感じ
>>29の訂正
FOLDERZ = dir('DATE');
FOLNAMES = {FOLDERZ.name};
FOLNUM = length(FOLNAMES);
FOLNAMENEW =[];
for i = 1:FOLNUM
if ~strcmp(FOLNAMES{i},'.') && ~strcmp(FOLNAMES{i},'..')
FOLNAMENEW = [ FOLNAMENEW ,{FOLNAMES{i}}];%あまり書き方よくない
end
end
35デフォルトの名無しさん:2012/09/28(金) 17:17:35.05
34さん
ありがとうございます。
なかなかうまくいきませんが、
もう少しあがいてみます。
36デフォルトの名無しさん:2012/09/29(土) 21:50:49.77
TV法ていろんなやり方あるけど導出をやってる論文で日本語のものありますか?
典型的なものから応用してるのまでどれでもいいです
37デフォルトの名無しさん:2012/09/29(土) 21:51:28.79
>>36
誤爆orz
すんません
38デフォルトの名無しさん:2012/10/02(火) 22:42:54.28
現在 windows7 64bit で Matlab 2007b を使用しています。
mex -setup コマンドを試したところ、Noneしか出ずにコンパイラを選択することができません。
C++コンパイラを使用したいのですが、この場合何をインストールすればよいのでしょうか。
現在visual C++ 2008 express edition と 2010 express edition はインストール済みです。
39デフォルトの名無しさん:2012/10/03(水) 10:05:45.66
>>38
ググったらいくらでもでてくるだろ
40デフォルトの名無しさん:2012/10/04(木) 15:48:19.23
どなたかOS:windows7 64bitを使用していてgetframeで問題が出てる人いませんか?
for文を回す中でgetframeで逐次ウィンドウをキャプチャしていくコードを組んでいるのですが
なぜか最初の1フレーム目のみを延々とループ回数分だけキャプチャしてしまいます
windowsXP32bitではこんなエラー出なかったのですが・・・

どなたか心当たりのある方いらっしゃいましたらご教授いただければと思います
よろしくお願いします
41デフォルトの名無しさん:2012/10/04(木) 16:19:20.95
windows7で2012aを使っております。
mathworks製のツールボックスで使われているクラスにメソッドを追加したいのですが、
自分以外のユーザーに影響を与えないようにする方法はありますでしょうか?

具体的には、symbolicツールボックスのsymクラスにないmin()などを追加したい場合などです。
\toolbox\symbolic\symbolic\@sym フォルダに書かず、
C:\Users\ユーザー名 以下に書いたりできるのでしょうか?
4241:2012/10/04(木) 19:46:19.28
symをオレオレクラスに継承するしかないでしょうか?
4340:2012/10/09(火) 11:01:54.59
40です
解決はできていませんが原因は分かったので、一助になればと思いこちらに報告します
どうもgetframeで取得したい軸または図に
set(gca,'Facealpha',0.5)
などと透過率を設定してやると>>40の症状が発生するようです
どうぞご注意を
44デフォルトの名無しさん:2012/10/10(水) 01:14:12.26
>> 40
Renderer変えると治るかも
OpenGLでダメだったことがあって、zbuffurとかに変えたら治った気がする

set(gcf,'Renderer','zbuffer')

みたいな感じだったと思う
45デフォルトの名無しさん:2012/10/11(木) 06:39:47.61
>> 43
そもそもaxesプロパティでFacealpha設定できねーし。
patch かsurf の軸ハンドルを設定したんだろ。
try catchで囲ってエラー出なかっただけじゃね。
46デフォルトの名無しさん:2012/10/13(土) 18:06:44.67
y=1/det(diag[exp(x),exp(2x),exp(3x)]^2)
(diagは対角行列,detは行列式)
(xは変数で1から10など好きに変化させる。)

このような物を計算し、x,y平面でグラフを書きたいのだが、
(本当はもう少し複雑な式ですが、簡易化してる。)

x=1:1:10
A=[exp(x) 0 0; 0 exp(2*x) 0; 0 0 exp(3*x)]
z=det(A)

としてもエラーが出てしまうんだよ

配列型のソフトだから上手くいかないのはあとでわかったのだけど、
上手く行列内に関数を入れることはできるのでしょうか?

できるのであればその定義の仕方を教えろください。
47デフォルトの名無しさん:2012/10/13(土) 18:32:41.89
2次元正規分布の描画を平均ベクトル(2*1)と分散共分散行列(2*2)の値を代入した変数から行う
関数を作成したい
----------------------------------
function 2dim_Seiki(x,m,Cov)

[x,y] = meshgrid(linspace(-1,3,25)',linspace(-3,1,25)');

X = [x(:) ; y(:)];

Out = mvncdf(X,m,Cov);
surf(x,y,reshape(Out,25,25));

return;
-------------------------------
ここまでmファイルを作成しましたがエラーになってしまいます
やり方を教えてください。おねがいします!
48デフォルトの名無しさん:2012/10/15(月) 21:13:51.28
age
49デフォルトの名無しさん:2012/10/16(火) 00:22:30.02
>>47
変数名の先頭に数字を入れている時点で論外

もっと勉強しな。かす。
50デフォルトの名無しさん:2012/10/16(火) 01:45:18.76
>>49
変数先頭を修正しました。ありがとうございます
そして、どうかカスな私にやり方をおしえてください

あれから下のような関数を考え、実行しましたがエラーになってしまいます

Pdf = 1/(sqrt(2*pi)).^-2.*sqrt(det(Cov)).^-1.*exp(-5.*(X-m).'.*inv(Cov).*(X-m));
51デフォルトの名無しさん:2012/10/16(火) 16:02:23.90
>>50
エラーならエラーを書け。
長い式は一時変数を使ってどんどん分解していけば人に聞く前に
アホでも気付く。
ここは宿題丸投げスレじゃない。

それに式自体あっちこっち間違ってる。
正定ならcholつかう。
ベクトル化する前に、スカラ出力が正しいかするのが先。
52デフォルトの名無しさん:2012/10/16(火) 22:40:45.87
>>51
ありがとうございます。一度、一時変数を使用します
エラーは"行列の次元は同じである必要があります"と表示されます
何度か修正しましたが、改善されず上と同じエラーは出ます

現在下のような形になってます
Pdf = 1/(sqrt(2*pi))^(-2/2)*sqrt(det(Cov))^(-1/2).*exp(-(X(:)-mu)'*inv(Cov)*(X(:) - mu)/2);

間違っている個所についてヒントで十分ですので、どうかご教授をおねがいします
53デフォルトの名無しさん:2012/10/17(水) 12:25:40.55
>>52
それだけ見ても分からん。変数の次元が違うなら次元が違うわけで各size()は?
Xは(:)しちゃあかんでしょ。 データの数xデータの次元 なんじゃ?
54デフォルトの名無しさん:2012/10/17(水) 12:28:19.14
ようするにX=X'
55デフォルトの名無しさん:2012/10/17(水) 22:54:09.82
>>53-54
ありがとうございます
早速調べたいと思います
56デフォルトの名無しさん:2012/10/20(土) 04:31:42.38
MatlabのGuiはOctaveでも使えますか?おしえてください
57デフォルトの名無しさん:2012/10/20(土) 17:47:01.04
age
58デフォルトの名無しさん:2012/10/21(日) 04:03:31.73
GPUを使ってみたけど、遅くて非常に後悔
59デフォルトの名無しさん:2012/10/21(日) 11:05:44.24
MATLABって速さを求めるものじゃなくね?
60デフォルトの名無しさん:2012/10/21(日) 20:05:53.95
>>56
できない
61デフォルトの名無しさん:2012/10/21(日) 20:08:35.14
へえ
62デフォルトの名無しさん:2012/10/22(月) 01:45:43.97
>>60
どうしても使えるようにしたいのですが、MATLAB以外のソフトで方法はないのでしょうか?
63デフォルトの名無しさん:2012/10/22(月) 22:38:24.12
>62
マルチやめれ
64デフォルトの名無しさん:2012/10/22(月) 22:54:55.86
おしえてやれよ
65デフォルトの名無しさん:2012/10/23(火) 01:11:56.45
MATLAB互換の関数がOctaveにあれば可能
なければ自作しろ
66デフォルトの名無しさん:2012/10/23(火) 03:25:54.93
あ?俺のために作れよ
67デフォルトの名無しさん:2012/10/23(火) 20:01:42.29
なんで?
68デフォルトの名無しさん:2012/10/26(金) 01:20:01.08
質問です
guideで作成したツールのウィンドウを閉じたときに処理を追加したいのですが
どうすればいいのでしょうか?
69デフォルトの名無しさん:2012/10/29(月) 23:15:26.44
質問です
Matlabで画像とか絵の傾きを検出する方法ってありますか?
70デフォルトの名無しさん:2012/10/30(火) 01:03:58.47
ないアルヨ
71デフォルトの名無しさん:2012/10/31(水) 02:38:10.61
そうですか...。ありがとうございます
72デフォルトの名無しさん:2012/10/31(水) 23:13:15.23
何を基準に傾きを出すのかしらんけど、MATLABじゃなくて画像処理全般の話題だろ
幾何モーメントとか勾配ヒストグラムとか方法は色々ある
73デフォルトの名無しさん:2012/11/05(月) 12:58:08.85
MATLABを用いて時系列データに対して、
周波数領域でバンドパスフィルタをかけたいのですが
ネットで探しても時間領域でのフィルタについてしか
でてきません。どなたか教えていただけますか?
74デフォルトの名無しさん:2012/11/05(月) 14:12:42.75
>>73
周波数カットするのに時系列のフィルターは使えないってことみたいだけど、
時系列のフィルターかければ周波数カットされる
FFT解析で周波数分かるから、フィルターかける前と後で比べてみれば良いと思う
FFTはググって
質問の意味が違ってたらすまん
75デフォルトの名無しさん:2012/11/06(火) 00:24:50.25
>>73
MATLAB helpや参考書など大量に情報はあるぞ。デジタルフィルターを学ぶと確実に書いて有ること。
単に周波数領域というかデジタルフィルターを理解してないのでは?
コマンドだと、fft、ifft の使い方がわかれば理解できる
76デフォルトの名無しさん:2012/11/06(火) 02:19:59.58
>>74
×時系列のフィルター
○時間領域でのフィルター
だった。

代行書き込みなので、書き込みが遅くなったらすまん
77デフォルトの名無しさん:2012/11/10(土) 19:14:30.94
フーリエ変換に関する質問なんだけど
Simulink上で0~n*Ts(n:サンプリング数,Ts:サンプル時間)の間実行して
得られたデータをfftかけるわけだけどもこの時時間軸のデータ個数は(n+1)個あるので一番初めの0秒のときのデータを削ってるんだけど合ってるのか不安
シミュレーション時間を長めにとったほうがいいんだろうか?
78デフォルトの名無しさん:2012/11/15(木) 21:06:33.55
用途次第なのでなんとも
定常のときはデータ数多いほうが安定になる
79デフォルトの名無しさん:2012/11/15(木) 21:10:05.75
>>73
探し方が悪い
80デフォルトの名無しさん:2012/11/17(土) 21:31:17.10
>>78
おいおい

>>77
fftの周波数分解能はシミュレーション時間で決まる
別にt=0を削っても問題はないけど、もうちょっと調べてから使うべきじゃないか
81デフォルトの名無しさん:2012/11/18(日) 10:34:11.62
最近workspaceの画面サイズを変更すると2分くらい固まるようになりました。

設定をいじったことが原因な気がするのですけど、何か原因に心当たりないでしょうか?
82デフォルトの名無しさん:2012/11/18(日) 11:57:33.23
>>80
> fftの周波数分解能はシミュレーション時間で決まる
> 別にt=0を削っても問題はないけど、もうちょっと調べてから使うべきじゃないか

ばかかおまえ
83デフォルトの名無しさん:2012/11/18(日) 11:57:54.08
>>81
メモリの問題じゃないかな
84デフォルトの名無しさん:2012/11/18(日) 11:58:31.01
シミュレーション時間っていう言葉がそもそも間違ってるじゃんw
85デフォルトの名無しさん:2012/11/18(日) 14:31:50.82
>>83
メモリは8G積んであるのだけど、スワップが起こってるんでしょうかね?
ひとまず再インストールしたら快適になったので、様子見してみます。

また同じ症状が起こったら原因特定して報告したいところ。
86デフォルトの名無しさん:2012/11/18(日) 15:09:36.13
各変数a~fにそれぞれ数字1~6を割り当てたくて下のように二行に分けてるけど
もっとスマートに一行で書く方法ないですか?
変数の名前に意味もたせてるから変数を配列にするのはナシで。

temp = num2cell(1:6);
[a,b,c,d,e,f] = deal(temp{:});
87デフォルトの名無しさん:2012/11/26(月) 14:36:52.85
88デフォルトの名無しさん:2012/11/26(月) 16:00:13.28
スマートに書く必要ないとおもうが
89デフォルトの名無しさん:2012/11/28(水) 12:03:01.85
matlabで微分したいのですが

syms x y z

A=x^2+y^2+z^2

B=diff(A,x) %Aの式をxで微分

実行 → ans=2x

だと通常通りできるのですが↑式を


A=(x(1))^2+(x(2))^2+(x(3))^2

としてx(1)で微分して
実行 → ans=2x(1)
と言う風に引数でしたいのですが symsで宣言できなかったりします。
どうすればよいでしょうか?教えてください。
90デフォルトの名無しさん:2012/11/28(水) 16:09:49.67
Symbolic Math Toolboxがインストールされてないに一票
91デフォルトの名無しさん:2012/11/28(水) 16:10:48.32
うそ、ごめん。ちゃんと読んでなかった。
92デフォルトの名無しさん:2012/11/28(水) 19:34:03.46
matlabで画像処理をしています
画像の各画素の青の値に常用対数をとり、その平均値を出したいのですが
その値が-infになってしまいます
どうしたらよいでしょうか?よろしくお願いします

A = imread('image.bmp');
blue = A(:,:,3);
blueD = double(blue);
bLog = log10(blue);
baverage = mean2(bLog);
93デフォルトの名無しさん:2012/11/28(水) 22:53:41.90
>>92
そういった経験がなく画像の常用対数の平均値を出すことの意義が分からないのではっきりした解決策は出せませんが
常用対数を出した時点
bLog=log10(blueD);
で青の信号が0の要素は-infになってしまいます。
-infが混じった平均をとると結果も-infになります。
なので常用対数をとる前にblueDの0の要素だけ例外処理するなりしないといけません。
ただ、例外処理の先をどう扱うか(例えば-1扱いにするか平均から除外するか)で結果も変わると思います。
相対値だけが問題なのであればblueDの全要素に+1するという手もありますが。
前者の場合はif文使うぐらいしか思い浮かびません。
もっと上手い手もあるかもしれませんがこれぐらいでご勘弁を
94デフォルトの名無しさん:2012/11/29(木) 10:35:15.79
>>92
対数で-Infがでるときは
min(blue)
max(blue)
まずこれを確認する

回避策としては0をNaNで置き換えて(findを使う)
対数をとって
NaNで置き換えた要素に何かを入れる(何を入れるかはその後の処理に依存)
95三宅祐輔:2012/12/07(金) 18:06:19.69
MATLAB Corder使っている方いませんかMATLAB言語からC/C++コードを直接生成したいのですが、お値段が高く・・買えないです。
一部のブログラムだけ変換していただけないでしょうか。
こちらのほうに連絡していただければプログラムを送信しますのでよろしくお願いします。
[email protected]
skypeID:yusuke-0727

図々しい質問をしているのはわかっていますが本当に困っているのでよろしくお願いします m(__)m
96デフォルトの名無しさん:2012/12/13(木) 20:49:50.23
simulinkモデルからreal-time workshopでコード生成してみたけど、出来たコード重くてあかん。最適化のチェックはいれてるんじゃが。なんかコツがあるのかな。
コツご存知の方、ご教授ください。
97デフォルトの名無しさん:2012/12/30(日) 00:27:05.07
微分方程式を解いたあとに特定の時間の値を求めるのはどうすればよいのですか?
98デフォルトの名無しさん:2012/12/30(日) 23:40:04.62
>>81ですが、近頃また調子が悪くなってきていました。
先ほど、警告: com.mathworks.mde.explorer.Explorer を作成できません。
というエラーが出たためググったところ

http://www.mathworks.co.jp/support/solutions/ja/data/1-H9I9LH/index.html?product=ML&solution=1-H9I9LH

このページがヒット。載っている通りにリネームしたら一気に軽くなったので、
>>81も何かファイルが破損していたのが原因だった可能性が高そうです。
99デフォルトの名無しさん:2013/01/19(土) 22:54:35.17
>>95
本家のHPでチラッと見たけど、最近のscipyってcのコードを生成するんじゃねーの?
100デフォルトの名無しさん:2013/01/19(土) 23:27:26.56
cythonじゃなくて?
101デフォルトの名無しさん:2013/01/20(日) 14:54:39.96
MATLAB2012にアップデートしたのですが
画像を一枚表示するだけで膨大な数列が表示されてしまい困っています。
前のバージョンではこんなことなかったのですが
設定などを見ても省略できそうなところはありませんでした
どなたか分かる方いたらお願いします
102デフォルトの名無しさん:2013/01/20(日) 21:51:10.91
なんのコマンドを使ったのか書いてくれないとコメントしようがない
103デフォルトの名無しさん:2013/01/23(水) 15:26:00.19
scatterで散布図を作成しているのですがサイズの指定の仕方が分かりません

値の最大値より少し大きいサイズの散布図を自動で作成して見やすくしてくれるのは助かるのですが
後で複数の散布図を比較したいので同じサイズを指定して作成したいです

今は

scatter(linewidth, lineheight,30,'.')

でマーカーの種類と大きさだけ指定しています
104デフォルトの名無しさん:2013/01/25(金) 19:13:12.93
x = randn(100,1);
y = randn(100,1);
scatter(x,y);
set(gca, 'xlim', [-4 4]);
set(gca, 'ylim', [-4 4]);
とかでどう?
105デフォルトの名無しさん:2013/01/25(金) 19:47:05.58
画像処理で5枚の画像を呼び出して同じ処理をするってのをやってるんだけど、

imread('C:/position/*.jpg');

の*をi = 1:5とかにしたいんだけどどうしたら良いか分かりますか?
106デフォルトの名無しさん:2013/01/25(金) 19:47:38.74
>>104
ありがとうございます
試してみます
107デフォルトの名無しさん:2013/01/26(土) 18:11:41.75
>>103
axis、xlim、ylimあたりで
108デフォルトの名無しさん:2013/01/26(土) 18:12:51.42
>>105
num2strは使えると思うのであとはevalと組み合わせる
109デフォルトの名無しさん:2013/01/30(水) 13:58:57.39
>>105
for n=1:5
filename = sprintf('C:/position/%d.jpg', n);
imread(filename);
end
が柔軟で良いと思う。
110デフォルトの名無しさん:2013/02/05(火) 13:23:59.79
matlabでtxtファイルを読み込みたいのですがどうすればいいでしょうか?
いろいろ調べてやってみたのですが、エラーがでます。
ファイルは1列目に年、二列目に1月、三列目に2月、…、十三列目に12月
のデータが入っています。ちなみにデータの間にコンマや;は入っていないです。
よろしくお願いします。
111デフォルトの名無しさん:2013/02/06(水) 15:38:27.89
どんなエラーが出たとか、データ形式とか書かないと何もわからん。
まずはデータ形式を。
たとえば1列目と2列目はどうやって区別しとるん? スペース? 列は固定長?
112デフォルトの名無しさん:2013/02/07(木) 12:26:56.12
111さん、ご指摘ありがとうございます。
1列目と2列目の間には三つスペースが開いています。
Error: Unexpected MATLAB expression.
というエラーがでます。ちなみに、データは
2012 6.0 7.2 6.3 10.7 11.3 13.3 12.8 14.0 12.2 10.8 9.3 7.7
というかんじです。
よろしくお願いします。
113デフォルトの名無しさん:2013/02/18(月) 20:10:33.33
現在、研究室でSun Blade 150(OS:Solaris SunOS 5.10)のパソコンを使用しており、Matlabをインストールしようと思っています。
サポートされているMatlab R2008a Solaris 版をダウンロードして、インストールしようと試みたのですが、
以下のような拡張子のファイルだらけで、どのようにインストールしたらいいのか分かりません。

どうかご教授お願いします。

***.ftp
***.common
***.sol64
***.slctrl
***.net
114デフォルトの名無しさん:2013/02/22(金) 14:48:54.11
一つのmファイルに複数の関数を書くことってできますか?
小さな関数をmファイルに小分けして書くと見づらいので、方法があれば教えてください。

それとスクリプトファイルの関数を書くことってできますでしょうか?
115デフォルトの名無しさん:2013/02/23(土) 00:20:21.95
legend('\tau_{', '');
116デフォルトの名無しさん:2013/02/23(土) 00:25:34.31
ミスりました.。>>115は無視して下さい。

Figureの凡例にて、τと^を表示しようとして、
legend('\tau_{dis}', '\hat{\tau}_{dis}');
とコマンドしたところτが表示できず、バックスラッシュが表示されました。
コマンドウィンドウ上では「lataex文字列を解釈できません」と表示されました。
setでインタプリタをlatexに設定しましたが、解決しませんでした。

解決方法のご教授お願いします。

環境はWin7x64とMatlab2012bです。
117デフォルトの名無しさん:2013/03/03(日) 07:53:17.30
eps出力で背景を透明にできませんか?
118デフォルトの名無しさん:2013/03/08(金) 23:43:23.13
インクリメント演算子とかデフォルト引数とかいい加減実装して欲しいな
octaveがすでにやってるから気に喰わないのかもしれないけど
119デフォルトの名無しさん:2013/04/02(火) 22:18:12.30
>>117
epsで吐き出すなら、吐き出した先のソフトで色がついてる背景を消去したら
いいだけじゃない
120デフォルトの名無しさん:2013/04/15(月) 02:11:41.52
[eigv eign]=eig(Hamiltonian);

などのように行列を対角化したときに
maxやminのように最大か最小を見つけるのではなく
n番目に小さいeignの要素と、その場所を得る関数はありますか?
121デフォルトの名無しさん:2013/04/15(月) 09:57:26.38
[Y,I] = sort(X); つかったら?
122デフォルトの名無しさん:2013/04/17(水) 15:29:16.26
>>119
texなんですが、どうやってやれば良いのでしょうか?
123デフォルトの名無しさん:2013/04/24(水) 14:45:13.87
バンドパスフィルタにはゼロ位相のものと因果律を
満たすものとがあると思うのですが、ネットで落ちていたんですが
以下のはどちらにあたるか教えて下さい。
よろしくお願いします。
124デフォルトの名無しさん:2013/04/24(水) 14:49:17.62
function [bandy]=bandp_fft(y,fs,F1,F2)
dt=1/fs;
[k,l]=size(y);
if k==1
n=l;
else
n=k;
end;
ffty=fft(y);
%------------------------------------ Low-pass(f=<F1)
index1=round(F1* (dt*n)+0.5);
index2=n-(index1-2);
Lowpass=ones(size(ffty));
Lowpass(index1+1:index2-1)=zeros(size(Lowpass(index1+1:index2-1)));
lowy=real(ifft(Lowpass.*ffty));
%figure1=figure(1);plot(lowy);
%------------------------------------ High-pass(f>F2)
index1=round(F2*(dt*n)+0.5);
index2=n-(index1-2);
Highpass=zeros(size(ffty));
Highpass(index1+1:index2-1)=ones(size(Highpass(index1+1:index2-1)));
highy=real(ifft(Highpass.*ffty));
%figure2=figure(2);plot(highy);
%------------------------------------ Band-pass (F2<f=<F1)
bandy=real(ifft(Lowpass.*Highpass.*ffty));
125デフォルトの名無しさん:2013/04/30(火) 16:36:38.36
MATLABでAM信号を書きたいのですがエラーが出てしまいます。ソースコードは

fc = 5e4;
ac = 1;
wc = 2 * pi * fc;
fm = 5e3;
am = 1;
wm = 2 * pi * fm;
tt = 2e-3;
n = 10000;
ts = tt/n;
t = 0 : ts : tt;
s = ac * (1 + am * sin(wm * t)) * sin(wc * t);
plot(t(1:n/2), s(1:n/2));

時間波形0〜2msを10000サンプリングのうちの時間波形0〜1msを表示したいです。
情報信号sin(ωc*t),ωc=2*π*5000
搬送波sin(ωm*t),ωm =2*π*50000

内部行列の次元は一致しなければなりません。とエラーが出ます。どなたか知恵を貸してください。
126デフォルトの名無しさん:2013/04/30(火) 17:11:39.09
最後のmとc逆でした
127デフォルトの名無しさん:2013/04/30(火) 17:49:07.66
ちんぽ噛んで死ね
128デフォルトの名無しさん:2013/05/02(木) 00:12:26.05
rcosineとhanningって一緒なの?
説明見ると、よくわからんが
式が一緒っぽいみたいなのと
plotした波形が一緒なんだが
これを説明できる文章が思いつかン
ネットで検索したり、図書館で本読みまくったが、初歩的なことなのか、ぜんぜんのっとらん。ハニングはわかるんだが
129デフォルトの名無しさん:2013/05/09(木) 19:26:40.27
あるシミュレーションで100万点ほどサンプルして
計算処理したいのですが、要素が多すぎますってエラーで
計算できません
初歩的なことですみませんが
回避方法教えてください
130デフォルトの名無しさん:2013/05/17(金) 17:46:16.03
>>129
解決しました
131デフォルトの名無しさん:2013/05/17(金) 22:58:43.48
一挙に読み込むのでなく
読み込みと処理とを適当に分割しました
とかいうんじゃねーだろな
132デフォルトの名無しさん:2013/05/19(日) 17:26:54.36
x-5cosx+3sinx-40=0
をニュートン法で求めたいのですが、matlabの数値計算の本を読んでもさっぱりで、どの様に考えたらよろしいでしょうか?
よろしくお願いします。
133デフォルトの名無しさん:2013/05/19(日) 19:01:17.44
すいません、自己解決しました。
簡単だった…
134デフォルトの名無しさん:2013/05/20(月) 18:43:09.02
135デフォルトの名無しさん:2013/05/21(火) 04:39:15.71
>>131
for1回ごとに100万この要素を持つ行列をそれぞれ計算させてそれを複数回まわしました
要素が多すぎと出ますが一応計算はできるみたいなので
136デフォルトの名無しさん:2013/05/21(火) 18:16:36.83
質問させていただきます。

現在、ある画像ファイルに対し、for文を用い少しずつ違う処理を加えた後、
各データをbmpとしてimwriteで保存しようとしているのですが、
ファイル名の末尾に
filename_1.bmp
filename_2.bmp
filename_3.bmp
...
などと、名前を適宜変えて保存するにはどうすればよいのでしょうか。

for p = 1 : 100
imwrite(data, 'filename_%d.bmp',p ,'bmp' );
end

のような感じで実行できると思っていましたが、どうやら駄目なようなので・・・。
よろしくお願いします。
137デフォルトの名無しさん:2013/05/21(火) 23:35:48.25
imwrite(data, ['filename_' num2str(p) '.bmp'] )
138デフォルトの名無しさん:2013/05/22(水) 13:02:07.37
imwrite(data, sprintf('filename_%d.bmp', p), 'bmp');
でもいける。
139デフォルトの名無しさん:2013/05/24(金) 00:46:13.71
>>137
>>138
ありがとうございます。
140デフォルトの名無しさん:2013/06/03(月) 14:42:31.05
質問です
ubuntuでlmstartからサーバ上のmatlabを起動していますが
matファイルやmファイルをダブルクリックで開こうと思ってもmatlab上でロードできません

matファイル等のプロパティからmatlabと関連付けしようとしましたが、一覧にmatlabが表示されず選択出来ませんでした

matファイル等とmatlabを関連付ける方法はありますか?
141デフォルトの名無しさん:2013/06/22(土) 13:18:08.13
質問です。よろしくお願いします。
オイラーの運動方程式をルンゲクッタ法で解きたいのですが、どのようにプログラムを組んだら良いのかが分からないという状態です。
よろしければ教えて頂けたら嬉しいです。
142デフォルトの名無しさん:2013/06/24(月) 10:55:53.56
質問です。imagescでデータをカラープロット
するときにy軸を対数スケールにしてなおかつy軸は
下から上に増加させたいと思います。自分でやるときに
axis('xy')を付加すると画像が消えます。どなたか
対処法を教えて下さい。よろしくお願いします。
143デフォルトの名無しさん:2013/07/04(木) NY:AN:NY.AN
パノラマ画像を作りたいのですが、どうしたらいいのでしょうか??
stitchingという作業について詳しく知りたいです。
144デフォルトの名無しさん:2013/07/19(金) NY:AN:NY.AN
質問です。
文字列1つと数字データを2つ含む構造体を
エクセルに出力したいのですが、どうすれば良いでしょうか。

例;
data=struct('str','','prob',0,'sum',0);
このdataという構造体に例えば100個のデータが入っているとします。
data(1).str=string, data(1).prob=0.9,data(1).sum=5
data(2).str=string2, ...
...
data(100).str=string100,data(100).prob=0.1,data(100).sum=4
のような形です。

このdataという構造体をエクセルに出力するにはどうすれば良いでしょうか。

よろしくお願いします。
145デフォルトの名無しさん:2013/07/20(土) NY:AN:NY.AN
質問です。
畳み込み和を計算するユーザ定義関数を
function y = con(x)

y=[];
N=length(x);

for m=0:N-1;
tmp=0;
for m=0:N-1;
tmp=tmp+x(m)*h(n-m);
end
end
上記の様に書いてみたのですが、これであっているのでしょうか?
なにか別の書き方ありましたら教えて欲しいです。
146デフォルトの名無しさん:2013/07/20(土) NY:AN:NY.AN
もしよろしければどなたかお答えください。

matlabである時系列のパワースペクトルを白色化(whitening)して
それをまた時間領域に戻したいのですが、ネットをさがしてもでてきません。
どなたかやり方を教えて下さい。
よろしくお願い致します。
147デフォルトの名無しさん:2013/07/20(土) NY:AN:NY.AN
>>145
conv関数使って結果を確かめな
148デフォルトの名無しさん:2013/08/02(金) NY:AN:NY.AN
imagescで表示した画像中で、マウスを動かした軌跡の座標を取得して保存したいのですが、何か方法はありませんか?
function myBDCallback(src,eventdata)
set(src,'WindowButtonMotionFcn',@myBMCallback);
end
function myBMCallback(src,eventdata)
C = get(gca,'CurrentPoint');
C = round(C);
title(gca, ['(X,Y) = (',num2str(C(1,1)),',',num2str(C(1,2)),')']);
end
function myBUCallback(src,eventdata)
set(src,'WindowButtonMotionFcn','');
end
という風に関数を作ってみたのですが、座標をマトリクスに入れて吐き出すことが出来ません。
よろしくお願いします。
149デフォルトの名無しさん:2013/08/28(水) NY:AN:NY.AN
Matlab32bitをWindows8 64bitにインストールできるのでしょうか?
150デフォルトの名無しさん:2013/08/29(木) NY:AN:NY.AN
俺は7だから知らないけどとりあえずインストールしてみたら?
151デフォルトの名無しさん:2013/10/03(木) 16:31:08.11
複数画像を1つのfigure内に表示する事はできますか?
例えば、I=imread('***.bmp');と読み込んで
それをJ=rgb2gray(I);と処理しなおした後に
左右に並べて比較したいのですが
152デフォルトの名無しさん:2013/10/03(木) 22:40:54.71
subplot
153デフォルトの名無しさん:2013/10/03(木) 23:14:57.43
>>152
どうもありがとうございます
subplot(2,1,1),imshow(I); subplot(2,1,2),imshow(J);
これで並べる事はできましたが画像そのものが表示されるわけではなく
ヒストグラムのような座標軸が出てきました
画像とそのグレースケール化画像を並べるにはどう修正すればよいのでしょう?
154デフォルトの名無しさん:2013/10/04(金) 00:59:47.87
カルマンフィルターが導入されたのはいつのバージョンからだっけ?
155デフォルトの名無しさん:2013/10/04(金) 09:45:59.13
>>151
imshowpair(A,B,'montage')
156デフォルトの名無しさん:2013/10/16(水) 16:43:31.57
MATLABで、スクリプトでディレクトリ内のファイル名を変更していきたいんですけど、
ファイル名を変更する関数とかコマンドってありますか?。
教えてくださいm(__)m。
157デフォルトの名無しさん:2013/10/17(木) 21:39:30.01
simulinkでシミュレーションの固定ステップ0.01秒にしてるのに
simulink上のプログラムembeddedファイルでなぜか0.005秒ごとに
ループが回るんだけど、なんでろ?
158デフォルトの名無しさん:2013/10/26(土) 10:50:19.47
>>156
環境によって変わってくるけど、自分はsystemを使ってた。Unixだと
system(sprintf('mv %s %s', filename1, filename2));
みたいに。
159デフォルトの名無しさん:2013/10/28(月) 09:58:57.21
>>158
どうもありがとうございます!
160デフォルトの名無しさん:2013/11/03(日) 02:29:31.41
>>155
いやimshow([A,B])だろ
161デフォルトの名無しさん:2013/11/05(火) 23:45:57.61
画像サイズが同じならそれでもいいね
162デフォルトの名無しさん:2013/11/16(土) 07:17:50.91
matlab上でのswitch case文とif else文は
分岐の数が同じ場合どちらが速度が速いですか?
163デフォルトの名無しさん:2013/11/24(日) 13:24:30.09
画像解析で色を検出して、例えば青系等で薄い青は低く、濃くなってくと高くなるっていうグラフを作りたいんですが、どうやって作っていけばいいんですかね
ガウス分布で表して、ポテンシャル場にする感じです

日本語下手で申し訳ない
164デフォルトの名無しさん:2013/11/24(日) 19:23:37.72
>>163
色の濃淡はrgb色空間向いてないからluvとかにもっていってあとは指定色をしきい値処理して分布みたらいい気がする
ただやりたいことがあまり良くわかんないから参考にならないのかもしれない
165デフォルトの名無しさん:2013/11/25(月) 22:43:43.87
S-Functionについての質問です.

InputRealPtrsType u0 = ssGetInputPortRealSignalPtrs(S,0);
real_T *y0 = ssGetOutputPortRealSignal(S,0);

配列u0を配列y0にコピーする関数を別のcファイルに定義しようとしています.
プロトタイプ宣言と関数の引数はどのように渡せばいいのでしょうか?

プロトタイプ宣言を
extern void ORIGINALFCN(real_T u0,real_T y0[]);

関数呼び出しを
ORIGINALFCN(*u0[0],y0);

としているのですが”error C2109: subscript requires array or pointer type”
となり困ってます 御助力いただけないでしょうか
166デフォルトの名無しさん:2013/11/27(水) 10:46:04.28
165です
自己解決しましたー
167デフォルトの名無しさん:2013/11/28(木) 21:39:25.53
ある座標(x1,y1)を通る直線を座標を中心に回転行列を用いて回転させたいんですが、
どうすればいいのか教えてください
168デフォルトの名無しさん:2013/11/28(木) 23:48:23.88
(x1,y1)が中心となるように座標系(直線の式)を平行移動する
任意の角度で座標系を回転させる
169デフォルトの名無しさん:2013/12/01(日) 22:49:24.34
離散データを特殊関数でフィッティングする
やり方を教えて下さい。
よろしくお願いします。
170デフォルトの名無しさん:2013/12/01(日) 23:36:03.84
lsqcurvefit
171デフォルトの名無しさん:2013/12/04(水) 04:11:20.84
mesh関数のview(2)で
連続的に変化する複数のグラフを作ったのですが
これをgif化するにはどうしたらできますか?
172デフォルトの名無しさん:2013/12/04(水) 04:11:53.13
グラフ→マップ図
173デフォルトの名無しさん:2013/12/05(木) 17:39:46.79
170さん、ありがとうございます。
lsqcurvefitはネットで使い方が
書いてあるのですが、使い方がよくわかりません。
ちなみに、xdataとydataは同じ大きさのベクトル
なのですが、初期値x0の意味がよくわかりません。
ちなみに、ベッセル関数で離散データをフィッティング
したいです。
174デフォルトの名無しさん:2013/12/08(日) 02:15:45.83
>>168
>>167です。遅れましたが、ありがとうございました
175デフォルトの名無しさん:2013/12/16(月) 18:16:03.97
離散データの極値を求めたいのですが
ネットで調べるとSymbolic Math Toolbox
が必要とでてきました。
Symbolic Math Toolboxがなくても微分
できますか?
176デフォルトの名無しさん:2013/12/17(火) 01:02:35.46
複雑じゃなきゃ関数の微分くらい手計算でやれ
面倒なら数値微分で近似
177デフォルトの名無しさん:2013/12/17(火) 01:38:40.35
今時微分積分もスマホのCASでも出来るよ
ネットでPCならSage math cloudがお勧め
178デフォルトの名無しさん:2013/12/17(火) 11:41:27.66
>>175
オイラー法でいけんじゃね?しらないけどww
179デフォルトの名無しさん:2013/12/18(水) 01:04:37.19
単純に数式計算がしたいならフリーのmaximaでも使えば?
180デフォルトの名無しさん:2013/12/19(木) 04:20:30.18
学生版では配列のサイズに制限があるようですが
オプション関連でこの配列制限が影響するオプションはありますか?
SimscapenやSimElectronics,SimPowerSystemsに影響があるか知りたいです
181デフォルトの名無しさん:2013/12/20(金) 21:58:08.76
ある行列testからゼロ以上の最小値を得たい場合、
findをどのように使えば良いでしょうか。

[r, c] = find(test == min(test(:)) &amp;&amp; test >= 0);

という書き方はできないようで…
182デフォルトの名無しさん:2013/12/20(金) 22:21:38.61
min( test(test>=0) )
183デフォルトの名無しさん:2013/12/22(日) 02:39:15.24
>>182
大変参考になりました
ありがとうございます
184デフォルトの名無しさん:2014/01/26(日) 22:02:35.70
ポップアップメニューの中身を可変にしたいんですけど可能ですか?
ファイルを読み込み、それによってポップアップメニューの中身の項目数が
3個だったり、10個だったりと変化するのですが、うまくいきません。

あとfigure1からfigure2を呼び出すことはできますか?
figure1がメインの画面、figure2がプロパティの画面になります。
引数付きで呼び出したいのですが、やり方がわかりません。

わかる人、よろしくお願いします。
185デフォルトの名無しさん:2014/01/26(日) 23:24:39.34
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwww
186デフォルトの名無しさん:2014/01/27(月) 16:18:59.66
関数定義の方法について非常に困っています。どうかお助けください。

入力変数にx,y(サイズN)を取るN元連立非線形方程式F_i(x,y)=0 (i=1,2,...N)があり、
ワークスペースに測定によって得られた既知の変数xの値x_measuredがあります
この時F_i(x_measured,y)=0は(yについて)fsolveで解くことができるかと思うのですが、
F_i(x_measured,y)=0の上手い定義の仕方が分かりません

最も愚直にはワークスペース上のx_measuredの値を見ながら、
function F = fun(y)
F = [f_1(x_measured,y); f_2(x_measured,y); ... ; f_N(x_measured,y)]
end
と関数定義してスクリプトで"fsolve(@myfun, y0, ... )"とすれば一応解けますが、
これではx_measuredが変わる度にfunctionの定義しなおさなくてはなりません
(実際問題Nは非常に大きく、また入力はx,yだけではないのでほぼ不可能です)

できれば関数の定義は次のように
function F = fun(x,y)
F = [f_1(x,y); f_2(x,y); ... ; f_N(x,y)]
end
としておいて、fsolveに受け渡す際に"fsolve(@myfun(x_measured,y), y0, ... )"
のような書き方ができれば非常に嬉しいのですが、可能でしょうか?

もし可能であれば、関連するドキュメントや簡単な例など紹介していただければ幸いです。
187デフォルトの名無しさん:2014/01/27(月) 22:28:34.31
関連するドキュメントと簡単な例
ttp://www.mathworks.co.jp/jp/help/optim/ug/fsolve.html
188デフォルトの名無しさん:2014/01/28(火) 00:30:34.29
調べたところ、無名関数を使えば良いっぽいです
何とか解決できそうなので、もう少し頑張ってみます
ttp://www.mathworks.com/matlabcentral/answers/28728-fsolve-function-with-values-read-from-the-workspace
189デフォルトの名無しさん:2014/02/01(土) 12:53:34.55
FFTしたwavファイルの周波数をグラフにプロットしているのですが縦軸が五線譜に見えるように
「縦軸を(12√2)*n毎に目盛りを配置」尚且つ「目盛り同士が等間隔」
になるよう表示するやり方はありますか?

またmatlabではなくscilabでプログラムしているので差異があればそこも教えてほしいです

答えていただける方がいましたらもう少し詳細をお伝えしますのでお願いします
190デフォルトの名無しさん:2014/02/01(土) 13:30:36.68
matlabのプロットならわかるがscilabは知らん
191デフォルトの名無しさん:2014/02/01(土) 13:36:51.58
>>190
分かりました
ではmatlabのままで構いませんので教えていただけないでしょうか?
192デフォルトの名無しさん:2014/02/01(土) 16:39:06.25
目盛り幅は基本的に等間隔
目盛りを手動で指定するにはytickをいじる
ttp://sach1o.blog80.fc2.com/blog-entry-58.html
193デフォルトの名無しさん:2014/02/08(土) 13:13:23.34
仕事でやむを得ずMATLABを使用しているが、
言語仕様が酷すぎてストレスが溜まる
194デフォルトの名無しさん:2014/02/08(土) 14:46:16.67
どういう点がストレス?
195デフォルトの名無しさん:2014/02/09(日) 11:07:55.88
数値計算にはかなり広く使いやすい仕様だとおもうけどな
196デフォルトの名無しさん:2014/02/12(水) 20:46:40.36
特にセル配列周りは頓珍漢仕様
197デフォルトの名無しさん:2014/02/12(水) 21:25:06.09
たしかに仕様は変だけどセル配列ってそんなに多用するかな
それよりも文字列をシングルクォートで囲むことが変態的
行列転置と被るからダブルクォートにしてくれりゃいいのに。どうせ使ってないんだし
198デフォルトの名無しさん:2014/02/13(木) 23:56:01.06
コンパイラでスタンドアロンアプリを作ろうとすると
セル配列を使う場面は結構あるのよ
199デフォルトの名無しさん:2014/03/04(火) 16:43:10.80
MATLAB Coderを使ってC言語にする時、複数のfunctionAがfunctionBを呼び出す場合はどうやればいいですか?
教えてください。

例えば、fprintf(1,'Hello¥n');を実行するfunction hello()をmainから呼び出すとしたら
codegen mainとすると
「このテキストは、空でない最上位の式を含んでいます。それはスクリプトのようです。」とエラーが出てしまいます。
200デフォルトの名無しさん:2014/03/25(火) 03:00:28.60 ID:P9aZrDFk
質問です。
例えば、
A=cat(3, [1 2 0 ; 0 5 6 ; 0 8 9], [1 1 1 ; 1 1 1 ; 1 1 1], [2 2 2 ; 2 2 2 ; 2 2 2])

という行列Aがあるとして、
index=find(A(:,:,1)==0)

このindexを利用して、A(:,:,1)の0の位置と同じ、A(:,:,2)およびA(:,:,3)の要素をxに置き換えて、
A=
1 2 x
x 5 6
x 8 9

1 1 x
x 1 1
x 1 1

2 2 x
x 2 2
x 2 2

という形にしたいのですが、うまい方法が思いつきません。

ご助言お願いします。
201デフォルトの名無しさん:2014/04/01(火) 22:46:42.16 ID:yGT6IIrw
初心者ですが、MATLABをつかってリアプノフ指数を求めることはできるでしょうか?
202デフォルトの名無しさん:2014/04/02(水) 04:38:59.48 ID:OrQFRmy1
>>200
亀レスだけど
[row,col] = find(A(:,:,1)==0);
A(row,col,:) = x;
203デフォルトの名無しさん:2014/04/14(月) 01:11:48.38 ID:pxE1iOpl
x軸の上下で異なる目盛り(例えば、下:秒、上:分、など)を付ける方法はあるのでしょうか?
もしご存知の方がいらっしゃいましたら、お教え頂けますと大変助かります。
初心者の質問で恐縮ですが、どうぞよろしくお願いします。
204デフォルトの名無しさん:2014/04/14(月) 22:43:23.43 ID:vgwDadtz
matlabって固有値が重解もつときの固有ベクトル正しく求められるの?
Ver5.3くらいの時は求められないことが普通にあったけど
205デフォルトの名無しさん:2014/04/28(月) 17:03:08.35 ID:cyIxQl90
MATLABでSNRを求めないといけないんですが全然進みません。
一応ここ
www.mathworks.com/matlabcentral/fileexchange/35479-stochastic-resonance-in-the-duffing-oscillator-with-matlab/content/runduffsr.m
のプログラムを基にしたいんですが・・・
206デフォルトの名無しさん:2014/07/22(火) 00:00:42.43 ID:uPmBGPkd
scilabからの関数のプログラムの移植で困ってます。

元のscilabプログラムは関数の引数に伝達関数を入力している部分がありますが、
matlabではうまくいきません。

必要なのは伝達関数の分母分子のsの係数だけなので、
それを抽出した配列を引数にしようとしてもダメでした。

どうすればよいでしょうか。
よろしくお願いします。
207デフォルトの名無しさん:2014/07/23(水) 09:03:30.02 ID:PTuSYeyO
>>206
Matlabでも同じことができるはずだけど、
コードをさらしてくれないと何も言えね。
208デフォルトの名無しさん:2014/07/26(土) 12:55:18.49 ID:dzCSeMJD
ここはsimulinkの質問もOKなのですか?
209デフォルトの名無しさん:2014/07/28(月) 22:21:24.90 ID:eJ2F/7BI
forの中にこのような表記で計算結果を連続させアニメーションを表示させています。
この表示中に右ドラッグで自由に回転させたいのですが、回転しようとすると直ぐに元の位置に戻ってしまいます。
アニメーションを表示させながら回転させられる方法はないでしょうか?
drawlater();
delete();
surf(X,Y,Z);
xset('colormap',jetcolormap(32))
drawnow();
sleep(1);
210デフォルトの名無しさん:2014/07/28(月) 22:59:32.75 ID:bBmcAOOY
>>207
function RetVal = calcParam(Gp, cont_model, ref_model)

となっていて、Gpがtf型です。
2つ目、3つ目の引数は整数。

関数を呼び出す際にGpにtf型の値を入れると、
『関数 'calcParam' (タイプ'tf' の入力引数) が未定義です。』
となります。

tf型の引数を与えられるんでしょうか。
それとも別の方法になるのでしょうか。
211デフォルトの名無しさん:2014/07/29(火) 03:23:52.76 ID:/VwBxSO0
MATLABで磁界のシミュレーションをしていきたいと考えています。
しかしネットで調べても
「マトラボで磁界のシミュレーションができるよ」
とは書いてあるものの具体的な方法を記載しているサイトが見つかりません

サイトに限らず書籍などでもいいので、参考になるものを知っている方がいらしたら教えてください。
よろしくお願いします。
212206=210:2014/07/30(水) 22:46:46.11 ID:UoxpiG/j
functionを使わないことで、引数の件は本質的ではないですが解決(?)しました。


ところで、scilabではrootsで3次方程式を解いていて、
解がすべて小数で求められているのですが、
matlabでsolveコマンドでは解がatanやらcosやらが混ざった式の解として求められ、
この求められた式を計算してもscilabの解と一致しません。

3次方程式はテキストファイル上にscilab、matlabの2つを上下に並べて比較し、
同じであることを確認してあります。

matlabの方程式の変数はsymsで定義してあります。

何か考えられる原因はあるでしょうか。
あと解をすべて小数表示で求める方法はあるでしょうか。
213デフォルトの名無しさん:2014/08/04(月) 17:32:53.13 ID:gZr2A2LY
Octave環境において、他ファイルに記述した関数を利用するために
source ./functions.m

とsourceコマンドを用いていたのですが、
MATLAB環境に移行するにはどのように記述すればいいのでしょうか?

よろしくお願いします。
214デフォルトの名無しさん:2014/08/22(金) 12:01:14.93 ID:HUPln6ac
scilab+SIVPで画像処理をしてるけど処理が激遅で困ってます
┌──┐
│ ○ │→┌───┐
└──┘  └───┘
↑みたいな480×640の画像で、真ん中の円の部分を長方形の画像に展開したいんですが、
1ドットずつ長方形の枠に色情報を移すようなループ処理でやってるせいか超遅い・・・

円の半径は480/2の240として、円の最外周から30ドットくらいまでを長方形の画像に
展開するのに高速で終わるようにするにはどうしたら良いでしょうか。
今は下みたいな処理をしています。

MARUは480*640*3の配列で、SIKAKUは30*1500*3の配列
MARUで指定する座標の色情報を一つずつSIKAKUの配列に入れて行く
r=240 //半径r
while(r>210)  //半径の最大から最小値まで繰り返す(行置換)
  a=360    //360°ぐるりと回りながらドット取得
  j=1     //長方形展開後の色情報を格納する列番号
  while(a>0)  //角度を360から0まで繰り返す(列置換)
    x=round(px+r*cosd(a))  //○画像の抽出したいドットの横方向座標取得
    y=round(py+r*sind(a))  //○画像の抽出したいドットの縦方向座標取得
    SIKAKU(i,j,1)=MARU(y,x,1)  //R・G・Bそれぞれ円の座標の色情報を
    SIKAKU(i,j,2)=MARU(y,x,2)  //長方形の画像の指定する場所に格納
    SIKAKU(i,j,3)=MARU(y,x,3)
    j=j+1 //長方形展開後の次の色情報を格納する場所の列指定
    a=a-0.24 //0.24°角度を移動 (半径480ドットの円の円周≒1500ドット、360/1500=0.24)
  end
  r=r-1 //最外周から1ドットずつ内側に移動
  i=i+1 //長方形の画像の次の色情報を格納する場所の行指定
end

この後さらに複数の長方形に展開した画像を結合して長い円筒にカメラを突っ込んだような画像から、
円筒を唐竹割りしたような展開画像を作りたいけど良い方法有りますでしょうか。
215デフォルトの名無しさん:2014/08/22(金) 12:25:56.14 ID:75pQCJyb
>>213
MATLABなら関数が置いてあるパスを登録する

OCTAVEも同様に.octavercに
パスの一覧登録しておく方法がある
216214:2014/08/22(金) 16:30:56.24 ID:HUPln6ac
まだループが有るけど大分早くなったので途中経過・・・
後は動画から連続する画像取得とその展開、展開画像の結合か・・・先は長い(´・ω・`)

i=1
r=240 //半径r
a=0:(360/1500):360
while(r>210)
  MARU_R=DR(round(py+r*sind(a)),round(px+r*cosd(a)))
  MARU_B=DG(round(py+r*sind(a)),round(px+r*cosd(a)))
  MARU_G=DB(round(py+r*sind(a)),round(px+r*cosd(a)))

  MARU_R=diag(MARU_R)'
  MARU_B=diag(MARU_B)'
  MARU_G=diag(MARU_G)'

  SIKAKU(i,ANS_yoko,1)=sum(MARU_R,'r')
  SIKAKU(i,ANS_yoko,2)=sum(MARU_B,'r')
  SIKAKU(i,ANS_yoko,3)=sum(MARU_G,'r')

  r=r-1
  i=i+1
end
217デフォルトの名無しさん:2014/08/22(金) 23:53:25.04 ID:4HOOsJza
quiver関数を使っているのに矢印がプロットされません
ためしにscale=0にして自動スケーリングを使用しないよう設定したら
矢印が表示されました。しかしすごい大きな矢印とちいさい矢印が複数ありました
これは大きいのと小さいのが入り乱れてるせいでスケールすると表示されなくなってしまうものなのでしょうか?
ネットで調べてもいまいちquiverを掘り下げて説明しているところがなかったので
こちらで質問させていただきます。
218デフォルトの名無しさん:2014/10/11(土) 19:15:16.44 ID:wraC4XgO
textscanを使ってテキストファイル(.txt)のデータを読み取った後、読み取ったテキストファイルを削除したいと考えています
しかし、textscan後にdeleteを使ったり、手動で削除しようとすると「MATLABによってファイルは開かれているため、操作を完了できません。」
と表示され、削除できません。
現状では一度MATLABを再起動してからテキストファイルの削除を行っているのですが、再起動せずにMATLABからテキストファイルへの読み込みを終了させるコマンドはないでしょうか
219デフォルトの名無しさん:2014/10/12(日) 13:17:28.68 ID:r9knvxjB
>>218
fclose()やってないからじゃないの?
220デフォルトの名無しさん:2014/10/12(日) 15:13:51.74 ID:reZFJ5WS
>>219
できました!!
ありがとう!!
221デフォルトの名無しさん:2014/10/20(月) 22:10:45.56 ID:m0Cwt3Vu
>>146
filter(lpc(x,3),1,x)
222デフォルトの名無しさん:2014/10/26(日) 12:30:23.03 ID:oDH9s4uy
シリアル日付値をx軸にすると、xlimで指定した範囲ぴったりにならないことがあります。
どうすればいいのか、どなたかご教示いただければ幸いです。
(例)
t = datenum(2014,10,26,12,30,0:1/100:60-1/100);
x = rand(1,6000);
plot(t,x);
xlim([t(1) t(100)]);
datetick('x','MM:SS','keeplimits');
223デフォルトの名無しさん:2014/10/31(金) 18:24:26.17 ID:TW+zt333
matlabのmaxは最初に見つけられたインデックスを返すのですが、最後に
見つけられたインデックスをかえすようにしたいのですが、方法が分かりません。
よかったら教えて下さい。
224デフォルトの名無しさん:2014/11/12(水) 22:37:23.56 ID:5ZF6NcZb
maxの引数になっている変数をA(end:-1:1)ってなのが一番楽じゃないか
後ろから数えたインデックスになってるけど全体サイズ分かってれば前からの位置もすぐ分かるし
一週間以上前のだからもう見てなさそうだけど
225デフォルトの名無しさん:2014/11/13(木) 00:28:03.60 ID:vHKtKy/x
fliplrとかflipudとか使ってもなんとかなりそう
226デフォルトの名無しさん:2015/01/25(日) 18:58:32.20 ID:fw2IaorY
FDAtool使ったFIRフィルタの設計って、設定したフィルタ特性や量子化パラメータでは
どんなに頑張っても実現出来ないときに、「出来ませんでした><」って教えてくれないの?
自分で特性グラフみて判断するしかない??
227デフォルトの名無しさん:2015/03/06(金) 23:20:44.66 ID:dUDlhKq2
matlabで振動にFFTかけてるんですけど、
周波数帯域毎のパワーを時間軸に沿って表示する、というのを出来る関数は無いんですか?
228デフォルトの名無しさん:2015/03/06(金) 23:28:35.80 ID:cyPdenk2
ウェーブレット使えばいいじゃん
229デフォルトの名無しさん:2015/03/08(日) 19:40:16.17 ID:ZUXQULMh
それか短時間フーリエ変換かな?
短時間フーリエ変換なら
specrogram
って関数がSignal Processing Toolboxにある

関数なくても短時間フーリエ変換程度ならなら
自作するかネットに転がってるだろ?
230デフォルトの名無しさん
ありがとうございます。
挙げて頂いたワードを元に調べた所、非定常振動の解析にはウェーブレットが向いているようなので、ウェーブレットでやってみようと思います。