MATLABプログラミング 質問箱 その2
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2006/11/10(金) 11:28:22http://www.cybernet.co.jp/matlab/
MATLAB 本家
http://www.mathworks.com/
Yahoo MATLAB
http://dir.yahoo.co.jp/Science/Mathematics/Software/MATLAB/
MATLAB入門
http://feedback.mech.fukui-u.ac.jp/matlab/matlab0.htm
MATLAB チュートリアル
http://www-isys.eei.metro-u.ac.jp/~sho/pub/ttmatlab/Index.html
0002デフォルトの名無しさん
2006/11/10(金) 17:20:58標準偏差/平均値を求めるんですが、これであってるでしょうか?
tmpにはn枚目の画像の画素値(640*480分)が入っています。
分散は最終的にbunに入れてます。
for x=1:480
for y=1:640
heikin(x,y)=mean(tmp(x,y,:));
for i=1:n
bunsan(1,j)=(tmp(x,y,i)-heikin(x,y)).^2;
end
bun(x,y)=1/n*sum(bunsan);
end
end
cont=sqrt(bun)./heikin;
std=sqrt(bun);
0003デフォルトの名無しさん
2006/11/12(日) 10:51:58あってるかどうかの確認ぐらい自分でできるっしょ?
2x3x4 ぐらいのデータ作ってためせっつー話。
0004デフォルトの名無しさん
2006/11/13(月) 15:57:250005デフォルトの名無しさん
2006/11/13(月) 19:51:230006デフォルトの名無しさん
2006/11/19(日) 13:19:430007デフォルトの名無しさん
2006/11/22(水) 04:12:03カラースケールマトリックスを作成の後、不要部分を削除
0008デフォルトの名無しさん
2006/11/26(日) 00:40:39カレントディレクトリにしか出力できないのでしょうか
0009デフォルトの名無しさん
2006/11/29(水) 09:36:18A(行列) - B(行列) とか他にも関数名がほぼ同じとか。
ちょっと急に思ったもので。
0010デフォルトの名無しさん
2006/11/29(水) 12:04:290011デフォルトの名無しさん
2006/11/30(木) 18:44:51何項目から何項目までの和みたいな指定はできるのでしょうか?
0012デフォルトの名無しさん
2006/11/30(木) 19:08:240013デフォルトの名無しさん
2006/11/30(木) 19:21:390014デフォルトの名無しさん
2006/11/30(木) 20:09:540015デフォルトの名無しさん
2006/12/02(土) 02:27:46http://www.cfar.umd.edu/users/hgupta/SfMreport.pdf
の Figure 1 みたいな図ってなんという関数を使うのでしょう?
surf ではないようだし。
0016デフォルトの名無しさん
2006/12/02(土) 04:07:30movie2aviでは非圧縮しかないのですが、圧縮動画を造る方法はないでしょうか?
0017デフォルトの名無しさん
2006/12/04(月) 11:01:190018デフォルトの名無しさん
2006/12/06(水) 01:31:06if 1<j
passenger_out(j,k)=trm_on(j,k);
stp_out(1,j)=stp_out(1,j)+trm_on(j,k);
trm_on(j,k)=0;
end
なぜか、trm_on(j,k)=0;を入れるとpassenger_out(j,k)まで0になってしって
passenger_outがゼロ行列になってしまうのですがなぜでしょうか。
よろしくお願いします。
001918
2006/12/06(水) 02:19:23自己解決しました。
簡単なミスを犯してました。
お騒がせしました。
0020デフォルトの名無しさん
2006/12/07(木) 10:15:070021デフォルトの名無しさん
2006/12/07(木) 10:21:27mファイル入力中に突然エディタに何も入力することが出来なくなり
ワークスペース見たら
java.lang.IndexOutOfBoundsException
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
(以下数十行に渡りエラー文)
こんな症状に覚えがある人いますかね?
0022デフォルトの名無しさん
2006/12/07(木) 19:50:560023デフォルトの名無しさん
2006/12/07(木) 20:07:46腹筋がおかしくなっちゃったじゃないか
0024デフォルトの名無しさん
2006/12/08(金) 21:21:38dw1dtoolで、左上のファイルから信号を読み込み、画像を表示するように、
specgramdemoでも同じように、ファイルから信号を読み込めるように
したいのですがどうすればいいのでしょうか....
なにせ初心者ですのでどこを参考にすればいいのかも分かりません。
よろしくお願いします。
0025デフォルトの名無しさん
2006/12/09(土) 01:30:30SAKURA が断然お薦めです。
0026デフォルトの名無しさん
2006/12/11(月) 21:13:33sys = tf([1 2], [1 2 3]);
感じで伝達関数が
伝達関数:
s + 2
-------------
s^2 + 2 s + 3
tf object ってデータ型みたいなんですが
guiでedittextに表示するためには
なんていう変換コマンドを使えばいいですか?(たとえばstr2doubleみたいな)
002726
2006/12/11(月) 22:31:34diary on
sys=tf・・・・
diary off
で、string型のデータにすることで
自己解決しますた!
0028デフォルトの名無しさん
2006/12/12(火) 20:40:00送信した信号を受信機でエネルギー検波(二乗検波)するプログラムを作りたいのですが、二乗検波の部分をどのように書いたらいいのかが分かりません…。
ちなみに、信号はUWBのパルス信号です。
どなたか、ヒントだけでもいいので教えて下さる方いらっしゃいませんか?
0029蟹男
2006/12/13(水) 00:17:39matlab6のロゴが一瞬画面に現れて終了してしまいます。
どなたか上のような症状を経験した人はいませんか?
OS:windowsXP Professional
matlabのVer.:matlabR12
ちなみに他のXPでは動作確認をしております。
なにか知っていたらお聞かせください。
0030デフォルトの名無しさん
2006/12/17(日) 18:59:52一応うちの研究室にもアカウントあるんだが
自分の家のPCでもやりたいと思ってて。
まぁあんまり高いようだと諦めますが。
0031デフォルトの名無しさん
2006/12/17(日) 19:21:07うちから研究室のマシンにログインして使えばいいじゃん。
0032デフォルトの名無しさん
2006/12/17(日) 19:40:27いやまぁ現状ではそうなんだけどね。
学割利くなら学生のうちに買っておけば
就職してからも使えるからいいかなぁと思って。
0033デフォルトの名無しさん
2006/12/17(日) 19:53:53最近は、最低年に2回はバージョンが上がるぞ。
特に、2006bは変更が大きいと思うが。
そこまで考えなければ、そんなに変わらないが…
値段はしらね。
0034デフォルトの名無しさん
2006/12/18(月) 12:25:22Matlabのプロットのプログラムをscilabのプログラムにコンバートしたいのですが、
どう書き換えれば良いでしょうか
q = [a0 a0*a1 a0*a2];
p = [1.0 b1 b2];
s = 0:0.01:pi;
subplot(2,2,2);semilogx(s, 20.0*log10(abs(freqz(q,p,s))));
axis([0 pi -20 20]);grid;
xlabel('Frequency \omega [rad]');
ylabel('|H(e~{j\omega})| [dB]');
これがMatlabのプロットのプログラムです。
よろしくお願いいたします。
0035デフォルトの名無しさん
2006/12/20(水) 05:36:41ぐりぐり回して好きなところでキャプチャできるようなやつって
あります?
matlab でなくてもいいです、この際
0036デフォルトの名無しさん
2006/12/20(水) 06:47:26関数ならviewとprint使え
0038デフォルトの名無しさん
2006/12/20(水) 22:09:14亀レスですが・・・。
おまいMATLABもScilabも使うな!!
おまいにとっては猫に大判。
おまいさぁ〜
自助努力ってもんが ねぇーのかよ!!!!!
0039デフォルトの名無しさん
2006/12/22(金) 15:22:120040デフォルトの名無しさん
2006/12/22(金) 19:25:15質問に答えるくらいしてから罵ろうよ・・・。
0041デフォルトの名無しさん
2006/12/22(金) 20:34:51m2sci使ってみた?
0042デフォルトの名無しさん
2006/12/23(土) 15:28:20ここはmatlabの板
板ちゃうw
0043デフォルトの名無しさん
2006/12/23(土) 20:03:45罵るだけじゃなくてさ。
0044デフォルトの名無しさん
2006/12/25(月) 11:48:24どのようにすればよいのでしょうか?
0045デフォルトの名無しさん
2006/12/29(金) 07:53:360046デフォルトの名無しさん
2007/01/12(金) 08:32:070047デフォルトの名無しさん
2007/01/12(金) 08:54:07/ヽヽ|/⌒\ii|\
/ /ヾゞ///\\|
|/ |;;;;;;|/ハ \|
|;;;;//⌒ヽ
|;/( ^ω^) >>1おっおっおっ乙枯ー
. |{ ∪ ∪
|;;ヾ.,____,ノ
|;;; |
|;;;;;|
|;;;;;|
0048デフォルトの名無しさん
2007/01/12(金) 14:49:36matlabのディレクトリに移動してmatlab -nojvmで立ち上げると起動は出来る。
javaのバージョンによっておかしくなるみたいだけどよく判らない。
0049デフォルトの名無しさん
2007/01/14(日) 12:53:04劇遅レスだけど、
heikin = mean(tmp, 3);
hensa = std(tmp, 3);
cont = hensa ./ heikin;
でいいんじゃないか?
0050デフォルトの名無しさん
2007/01/16(火) 14:11:010051デフォルトの名無しさん
2007/01/18(木) 00:36:440052デフォルトの名無しさん
2007/01/20(土) 01:36:45そういうのをまとめてテンプレにしないか?
0053デフォルトの名無しさん
2007/01/20(土) 03:08:020054デフォルトの名無しさん
2007/01/20(土) 16:44:01早速ですが質問させてください
関数内でプロットする場合に、入力変数で
xlabel('テキスト')のテキストを指定することってできますか
よろしくお願いいたします
0055デフォルトの名無しさん
2007/01/20(土) 20:40:12label(labelname);
ploter('テキスト');
でいいんじゃないか?
とりあえずやってみれ
0057デフォルトの名無しさん
2007/01/22(月) 14:57:12global Boxp
if flag == 2,
if any(get(0,'Children')==Boxp),
if strcmp(get(Boxp,'Name'),'daisya1'),
set(0,'currentfigure',Boxp);
H=get(gca,'UserData');
x=[u(1) u(1)+6*sin(u(2))];%振子
y=[-3 -3-6*cos(u(2))];%振子
set(H(1),'XData',x,'YData',y);
set(H(2),'XData',u(1),'YData',-2);%台車の位置
set(H(3),'XData',x,'YData',y);
drawnow;
end
end
0058デフォルトの名無しさん
2007/01/22(月) 14:58:27axis([-10 10 -10 10]);
x=[0 0];
y=[-3 -9];
%H(1)=plot(x,y,'color','r','LineWidth',5,'EraseMode','background');
H(1)=plot(x,y,'LineWidth',5,'EraseMode','background');
H(2)=plot(0,-2,'s','color','r','MarkerSize',50);
H(3)=plot(x,y,'s','color','b','MarkerSize',20);
set(gca,'UserData',H);
plot([-7 7],[0.-1 0.-1],'color','k','LineWidth',15);
sys=[0 0 0 2 0 0];
x0=[];
end
end
実行速度を実際の実行スピードにしたいのですがどのようにすればいいでしょうか?
0059デフォルトの名無しさん
2007/01/23(火) 23:16:06質問させてください
Y=X'*B*Xの対角成分が欲しい場合には、
diag(X'*B*X)ですが,対角成分しかいらないのに
X'*B*Xという計算をするのは不経済なので、
なんとかfor文を使わずに対角成分だけを計算する方法って
ありませんかね?
よろしくお願いします
0060デフォルトの名無しさん
2007/01/24(水) 06:52:51[B2,F2,T2]=specgram(B,1024,1/T);
figure
f30=find(F2<30);f=[min(F2),max(F2(f30))];
t=[min(T2),max(T2)];
imagesc(t,f,abs(B2(f30,:)),[0,100]);colorbar;
specgramだと、色の値を各計測ごとの相対値でしか表せないから
(例えば一回目の計測の最大値が100としたら赤が100に対応し、
二度目の計測の最大値が60としたら 今度は赤が60に対応して表示されてしまう。)
imagescを用いてみたのですが、specgramの左下に原点のあるのグラフから
imagescのグラフは左上となってしまいます。
どうにかして元に戻す方法はありませんか?
0061デフォルトの名無しさん
2007/01/24(水) 07:58:07エディットの数値を
handles.XXXXXX=str2double(get(hObject,'String'));
guidata(hObject, handles);
でセーブしても値が渡されない。
0062デフォルトの名無しさん
2007/01/24(水) 10:10:210063デフォルトの名無しさん
2007/01/24(水) 15:55:08等高線contourでライン幅を指定することってできますか?
よろしくお願いします
006463
2007/01/26(金) 16:46:32申し訳ありませんが,もう少し詳しく質問させてください.
等高線プロットcontourでラインスペックを指定するときに,
ヘルプでは
「contour(...,LineSpec) は、LineSpecで指定したラインタイプと
色を使ってコンターを描画します。」
と書かれていますが,
いざ,contour(X,Y,Z,'LineWidth',2)
とやると
??? エラー: ==> contours
入力引数が多すぎます
エラー: ==> C:\MATLAB6p5\toolbox\matlab\specgraph\contour3.m
行番号: 80 ==>[c,msg] = contours(varargin{1:nin});
エラー: ==> C:\MATLAB6p5\toolbox\matlab\specgraph\contour.m
行番号: 62 ==>[c,h,msg] = contour3(varargin{:});
エラー: ==> C:\MATLAB6p5\work〜.m
行番号: ** ==> contour(X1,Y1,Z1,'LineWidth',2);hold on
と出てしまいます.
どうすればラインスペックを指定できるのでしょうか.
どなたかご教示のほどよろしくお願いいたします.
0065デフォルトの名無しさん
2007/01/26(金) 18:02:446.5の場合はhハンドルとsetって
↓これでいけるはず。
[c,h]=contour(X,Y,Z);
set(h,'LineWidth',2);
0066デフォルトの名無しさん
2007/01/27(土) 22:56:50f(x,y)=0のような陰関数をプロットするにはどうすれば良いでしょうか.
よろしくお願いいたします.
0068デフォルトの名無しさん
2007/01/31(水) 02:32:41これでどうっすか?
for x=1:1000
y=find(f(x)<0.2 & f(x)>-0.2); %幅は適当に変更
plot(x,y,'.')
hold on
end
ところで、私も質問があります。
時系列の離散データをz変換したいのですが、どうすればいいんでしょうか?
ztransは関数で入力しなければならないみたいだし。
知ってる人、教えてください。
0069デフォルトの名無しさん
2007/02/01(木) 21:28:18↓をベースにしてコッホ曲線を描くためにはどうすればよいのでしょうか。
%koch曲線表示プログラムkoch.m
%(x0,y0)から(x1,y1)までの線分についてのkoch曲線を描く
function y = koch(x0, y0, x1, y1, level)
if level == 0
% level が0
%(x0, y0)と(x1,y1)を結ぶ
%このとき、hold onとしておく必要がある→ 別の線分と重ね合わせ
else
%level が0でないとき
%(x0,y0)と(x1,y1)を3等分する→ (x2,y2)と(x3,y3)を増やす
%(x2,y2)(x3,y3)を結ぶ線分を60度回転し、(x4,y4)とする
% 生成した4辺(x0,y0) (x2,y2), (x2,y2) (x4, y4), (x4, y4) (x3, y3)
% (x3,y3)(x1,y1)についてlevel = level – 1としてkoch関数を呼ぶ
end
end
007069
2007/02/05(月) 14:26:18sys=[];
elseif flag == 4
ns =t/ts;
sys = (1 + floor(ns + 1e-1*(1+ns)))*ts;
elseif flag ==0;
animinit('daisya1');
[flag,Boxp] = figflag('daisya1');
axis([-10 10 -10 10]);
hold on;
このプログラムで、可変ステップ時はうごくのですが、
固定ステップにするとエラーが出てしまいます。
どのようにすればいいでしょうか?
0071初心者
2007/02/11(日) 16:27:50MATLABで下記のような離散時間状態空間モデルを
予測誤差法を使いパラメータ推定をするには
どうプログラムすればよいのでしょうか?
いままで、紙と鉛筆での計算はやってきましたが
プログラムは苦手なので、困っています。
離散時間状態空間モデル
x(k+1)=Ax(k)+Bu(k)+Ke(k)
y(k)=Cx(k)+Du(k)+e(k)
---------------------------
u(k):入力,x(k):状態
y(k):出力,e(k):誤差
初期条件として
u(k)=[2 2 3 3 5 5 3 3];
y(k)=[1 1 1 2 1 2 1 1];
です。
0072初心者
2007/02/11(日) 16:35:44e(k):誤差と書きましたが
e(k):正しくはノイズです。
失礼しました。
MATLABで下記のような離散時間状態空間モデルを
予測誤差法を使いパラメータ推定をするには
どうプログラムすればよいのでしょうか?
いままで、紙と鉛筆での計算はやってきましたが
プログラムは苦手なので、困っています。
離散時間状態空間モデル
x(k+1)=Ax(k)+Bu(k)+Ke(k)
y(k)=Cx(k)+Du(k)+e(k)
---------------------------
u(k):入力,x(k):状態
y(k):出力,e(k):ノイズ
初期条件として
u(k)=[2 2 3 3 5 5 3 3];
y(k)=[1 1 1 2 1 2 1 1];
です。
007373
2007/02/14(水) 15:07:52実行してFigureに表示された動画をAVI形式に圧縮する方法は
どのようにすればよろしいでしょうか?
0074デフォルトの名無しさん
2007/02/14(水) 17:49:18エンコードしてAVIにすれば完成です。
0075デフォルトの名無しさん
2007/02/14(水) 20:41:360076デフォルトの名無しさん
2007/02/15(木) 08:30:47好みで選んで圧縮すりゃいいんだよ。
0077デフォルトの名無しさん
2007/02/16(金) 01:26:29MATLABムービーにしてmovie2aviか
ttp://dl.cybernet.co.jp/matlab/support/manual/r13/toolbox/matlab/matlab_env/?/matlab/support/manual/r13/toolbox/matlab/matlab_env/import17.shtml
ここ参照する
0078デフォルトの名無しさん
2007/02/17(土) 02:32:01pymatをpython2.4 か 2.5にコンパイルしたものをだれか持ってないですか?
0079デフォルトの名無しさん
2007/02/17(土) 18:42:56コンパイルには成功したけど
pythonの最新版なのが悪いのかmatlabとの通信がまったく機能してない
008078
2007/02/18(日) 22:27:18dctを使ったsampleプログラムが動かないだけだった
dctはtool boxないと動かないみたいだね
0081デフォルトの名無しさん
2007/03/02(金) 11:52:250082デフォルトの名無しさん
2007/03/04(日) 23:08:10早速ですが質問させてください
function のなかで function を定義するのはどうすれば良いのでしょうか。
0083デフォルトの名無しさん
2007/03/05(月) 00:16:37function hoge
foo
end
function foo
end
0085デフォルトの名無しさん
2007/03/06(火) 19:51:300086デフォルトの名無しさん
2007/03/17(土) 04:32:550087デフォルトの名無しさん
2007/03/18(日) 06:57:16早速ですが,1*pの行ベクトルxがあるときに,
xを縦にn行並べたn*p行列はfor文を使わないで生成できますでしょうか.
よろしくお願いします.
0088デフォルトの名無しさん
2007/03/19(月) 23:16:17Optimization Toolboxのfminuncで
関数y=func(x,z)をxについて最小化したいんですが,
どうすればよいでしょうか.zはこちらで与えたい定数です.
ヘルプには
X = fminunc(FUN,X0,OPTIONS,P1,P2,...) は、
問題に関連したパラメータ P1,P2,... を、直接、関数
FUN に渡します。
と書いてあったんで
x=fminunc(@func,x0,[],z)
というように,zを与えようとしたのですが,うまく行きません.
ご教示いただきますと幸いです.
よろしくお願いいたします.
0089デフォルトの名無しさん
2007/03/20(火) 08:41:43repmat
0090デフォルトの名無しさん
2007/03/20(火) 20:26:35ones(n, 1) * x;
0091デフォルトの名無しさん
2007/03/28(水) 17:20:31009291
2007/03/28(水) 17:22:060093デフォルトの名無しさん
2007/03/28(水) 17:49:470094デフォルトの名無しさん
2007/03/28(水) 17:52:010095デフォルトの名無しさん
2007/03/30(金) 15:40:000096デフォルトの名無しさん
2007/03/30(金) 15:59:13現代の小学生は正方形の中に
円をかいて4より小さいって自分で調べて3をみつけだしているからね
0097デフォルトの名無しさん
2007/03/30(金) 19:48:43私のときは方眼紙に缶とかを利用して円を描き、
その面積を計算したりしたよ。
0098デフォルトの名無しさん
2007/03/31(土) 07:54:43並べ替えて平行四辺形みたいな形状をつくり、縦x横。
更に班内で平均。
0099デフォルトの名無しさん
2007/04/10(火) 17:24:07例えば
a.b = 1;
a.c = 'test';
なときに
x = somefunc(a);
で
x = 'ZSGADRERASVFDSAD'
みたいなのが返ってくるような。
入力する構造体の構造と値が一致した場合のみ戻り値xも一致して、
そうでない場合は全然違う値が出てくる、というようなものを探して
います。何か良い方法を知っている方がいましたら教えてください。
0100デフォルトの名無しさん
2007/04/13(金) 18:33:46Scilabでかなり長い式を定義しようとしたら,
invalid factorと言われて困っております..
0101デフォルトの名無しさん
2007/04/14(土) 09:23:29そのものずばりなものは見たことないよ。
fieldnames()とかを使ってフィールド名を出してきたり、struct2cellで値を出してきたりして、あとはMD5なんかに突っ込むしかないんじゃないかなー。
0102デフォルトの名無しさん
2007/04/18(水) 13:22:38simulinkで
y(0)=0
y'=1-xy
の微分方程式を作るにはどうやるのか教えてください
やってみたけどわかりませんでした
よろしくお願いします
0103デフォルトの名無しさん
2007/04/18(水) 13:49:42出直してきます
0104デフォルトの名無しさん
2007/04/23(月) 18:07:270105デフォルトの名無しさん
2007/04/24(火) 09:19:100106デフォルトの名無しさん
2007/04/28(土) 14:31:420107デフォルトの名無しさん
2007/05/01(火) 16:54:04どういったところから始めるべきでしょうか?
解説書を見ながら、何かのデータをいじくっていけばいいのでしょうか?
0108デフォルトの名無しさん
2007/05/02(水) 18:10:44-regexpで正規表現を使うってのはわかるんですが
a ab abcって変数があるとき
clear -regexp [^\<ab\>]
とするとabcだけがクリアされちゃいます。
0109108
2007/05/02(水) 18:13:520110108
2007/05/02(水) 18:15:05変数ab以外です。
0111デフォルトの名無しさん
2007/05/04(金) 15:19:360112デフォルトの名無しさん
2007/05/04(金) 16:50:580113デフォルトの名無しさん
2007/05/05(土) 04:10:570114デフォルトの名無しさん
2007/05/05(土) 12:32:09まあそれだとabcにマッチするよな当然。
そしてbはclearされないけどxはクリアされると。
0115デフォルトの名無しさん
2007/05/06(日) 04:50:080116デフォルトの名無しさん
2007/05/06(日) 12:07:480117デフォルトの名無しさん
2007/05/06(日) 12:41:06ttp://freemat.sourceforge.net/wiki/index.php/Main_Page
場合によっては octave-forge から持ってくるにしても
関数群が貧弱であれだけど
0118デフォルトの名無しさん
2007/05/06(日) 15:05:37そうなの?
0119デフォルトの名無しさん
2007/05/10(木) 03:07:47imhistでプロットしたヒストグラムの数値を
計算に使うにはどうしたらいいんでしょうか?
どこかに格納されてたりするんでしょうか。
お願いします。
0120デフォルトの名無しさん
2007/05/10(木) 03:42:550121119
2007/05/10(木) 10:14:030122デフォルトの名無しさん
2007/05/26(土) 08:23:39どのようなパラメータを設定すればよいのでしょうか?
0123デフォルトの名無しさん
2007/05/29(火) 17:47:05解凍作業をmatlab上から行えないでしょうか?
0124デフォルトの名無しさん
2007/05/30(水) 00:08:440125デフォルトの名無しさん
2007/05/30(水) 08:03:46dosとかunix
0126デフォルトの名無しさん
2007/06/01(金) 02:50:300127デフォルトの名無しさん
2007/06/05(火) 00:50:580128デフォルトの名無しさん
2007/06/08(金) 23:27:58function Y = f(X,Za,Zb,・・・)
if X=1
Y=sum(Za)
elseif X=2
Y=sum(Zb)
elseif...
というように必要なグローバル変数Z*が非常に多いので、代入以外に方法があればと考えています。
Z*を一つの変数にまとめることも考えましたが、すでにZ*それぞれが3次元変数なので、出来れば避けたいです。
0129デフォルトの名無しさん
2007/06/09(土) 05:32:17matlab global でぐぐるくらいしようよ。一発だよ。
0130デフォルトの名無しさん
2007/06/16(土) 11:35:13y x
の逆行列を求めるにはどうやるの?
0131デフォルトの名無しさん
2007/06/16(土) 19:30:47色々調べてみてもイマイチ理解が出来ていないんですが・・・。
matlabでローパスフィルタを作製しようと思ったときに参考にできるサイト
ってありますかね?
0132デフォルトの名無しさん
2007/06/16(土) 23:18:28inv([x -y ; y x])
0133デフォルトの名無しさん
2007/06/16(土) 23:19:09ローパスフィルタを作ること自体はfilter関数に何を入れてやればいいかだけ。
信号処理論の勉強をすべし。
0134デフォルトの名無しさん
2007/06/19(火) 15:53:58未定義の関数、またはメソッド 'hann' (タイプ'double' の入力引数)。
と表示されます
w = hann(1024);
と使っているのですがうまく動きません
だれかご教授を
0135デフォルトの名無しさん
2007/06/19(火) 20:05:390136134
2007/06/19(火) 21:31:13すぐに確認できないんで明日確認して報告します
0137134
2007/06/20(水) 16:04:45練習ついでにhanning関数作りました。
ありがとうございました。
0138デフォルトの名無しさん
2007/06/20(水) 21:02:080139デフォルトの名無しさん
2007/06/21(木) 08:27:300140デフォルトの名無しさん
2007/06/27(水) 02:11:430141デフォルトの名無しさん
2007/06/29(金) 14:48:56plotで表示しているのですが、最後のplotしか表示されません。
途中経過も表示したいのですがどのようにしたらよいのか教えてください
0142デフォルトの名無しさん
2007/06/29(金) 20:39:13hold on
for i=1:n
plot(なんとか)
end
hold off
こんな感じ?
forの前にhold onしてforのあとにhold offかな?
0143デフォルトの名無しさん
2007/06/29(金) 20:41:16figure
for i=1:n
plot(なんとか)
drawnow
end
drawnowですぐ結果表示だからね。
質問をはっきりして欲しい。
0144デフォルトの名無しさん
2007/07/01(日) 07:16:55ソースも書かずになんで原因が分かると思ったんだ?
>>142,143 はひまでしょうがないから
たまたまあてずっぽうで答えてくれただけだからな。
0145デフォルトの名無しさん
2007/07/01(日) 08:38:58どうもありがとう。
0146デフォルトの名無しさん
2007/07/01(日) 12:06:46圧縮フォーマットは何でもよいのですが、何かよい方法はないでしょうか?
0147デフォルトの名無しさん
2007/07/01(日) 12:35:54mplayer とか ffmpeg とかいろいろあるじゃん。
0148デフォルトの名無しさん
2007/07/03(火) 13:23:05ソースを解読しながら修正することになったのですが、如何がコンパイルできない、どの関数が実行できないなどの情報はどこかに集まっていないのでしょうか?
0149デフォルトの名無しさん
2007/07/03(火) 14:18:590150デフォルトの名無しさん
2007/07/03(火) 17:41:190151デフォルトの名無しさん
2007/07/03(火) 21:56:270152デフォルトの名無しさん
2007/07/03(火) 22:25:59を計算できるような方法はございますでしょうか?
(自分でforとmax使って作ると遅いので・・・)
0153148
2007/07/04(水) 11:49:11どうもすいません。確かに前提のお話が足りていませんね。
>>150
言いたいことは分かりますが、ただ教授も神様じゃないんです。
一応教授から聞いた症状ですが
・使用したコンパイラはmcc
・環境はmatlab6.5でコンパイルできた
・matlab7.1にしたらコンパイルできなくなっていた(これは共同研究者の環境ら
しいです
と、ここまでは聞いた話です。忘れてください。
それで、自分で試した限りでは
・matlab6.5ではコンパイルできず
・matlab7.0ではexeファイルを生成できるけど、実行できない
となっていました。
プログラムは用意したmp3(またはwav)ファイルを読み込んで、その波形から特徴
のあるところを探すものらしいですが、400行ちょっとあって、どこが原因なのか
探すのが一苦労です。
今後もmファイルのコンパイルにはお世話になる可能性が高いので、何が障害にな
るか傾向なんかがあるとやりやすいのですが…
0154デフォルトの名無しさん
2007/07/05(木) 07:42:430155デフォルトの名無しさん
2007/07/05(木) 08:50:000156デフォルトの名無しさん
2007/07/05(木) 18:35:14教授なら外国の掲示板で聞くと思うが
0157デフォルトの名無しさん
2007/07/05(木) 19:59:17それに教授だからとなぜ2chで聞くのがおかしいんだ?
教授は崇高な存在だとでも思っているのか?
0158デフォルトの名無しさん
2007/07/05(木) 21:22:590159デフォルトの名無しさん
2007/07/07(土) 23:02:18Fantasy
Tactics
0160デフォルトの名無しさん
2007/07/08(日) 14:31:49inv は、LINPACK のサブルーチン ZGEDI と ZGEFA を使っています。
とありますが、
最近のは
invは、LAPACKルーチンを使って、逆行列を計算します。
行列 関数
実数 DLANGE, DGETRF, DGECON, DGETRI
複素数 ZLANGE, ZGETRF, ZGECON, ZGETRI
となっています。具体的には、何が違うのでしょうか?
0161デフォルトの名無しさん
2007/07/08(日) 15:13:500162デフォルトの名無しさん
2007/07/19(木) 05:08:440163デフォルトの名無しさん
2007/07/19(木) 13:53:10基本システムは,去年購入した価格で10万円強だったが,価格改定されてるかも.
サイバネットシステムのサイトからメールで資料請求しなされ.
すぐにカタログと価格表を送ってくれるよ.
0164デフォルトの名無しさん
2007/07/20(金) 01:05:280165デフォルトの名無しさん
2007/07/22(日) 01:23:230166デフォルトの名無しさん
2007/07/23(月) 01:09:35なんでそんなものが必要だと思うのかを書かないの?
0167デフォルトの名無しさん
2007/07/23(月) 01:32:22for文を使わずに,
'A.*B'や'A./B'の様に書きたいからです.
0168デフォルトの名無しさん
2007/07/23(月) 09:53:55それは本当にlispのmap関数のようなものがないとできないのか?
0169デフォルトの名無しさん
2007/07/23(月) 10:17:18おまえはまず興味があるのなら、Yes か No で答えてあげたらどうだ?
疑問文に疑問文で答えろと学校で教えているのか?ってやつだ
0170デフォルトの名無しさん
2007/07/23(月) 12:05:520171デフォルトの名無しさん
2007/07/23(月) 12:06:51小出しにして質問者に質問させるような質問に親切に答えてくれる人は少ない。
>>169はそういう親切な人みたいだから、君が答えてあげたら?
0172デフォルトの名無しさん
2007/07/23(月) 12:11:23あんたが質問の意味も理解できない馬鹿なだけだろ
0173デフォルトの名無しさん
2007/07/23(月) 12:13:49>>172はちゃかしてるだけで結局答えることも
どう聞くべきかを教えてやることもしないんだろ?
0174デフォルトの名無しさん
2007/07/23(月) 13:10:040175デフォルトの名無しさん
2007/07/23(月) 14:57:43そんなこと一言も言ってないのになんで勝手に決めるんだ?
でお前は質問に答えられもしないし
どう聞けばより答が得られやすいかを教えてあげるわけでもないんだろ?
0176初心者
2007/07/23(月) 21:36:26TSPの10都市問題をエネルギー関数を用いて解かせるプログラムを組みたいのですが、
全くわかりません。。
参考にできるサイトなどありましたらお教えいただけませんでしょうか。
0177デフォルトの名無しさん
2007/07/23(月) 21:41:480178177
2007/07/23(月) 21:44:44python matlab compatible
で検索すると幸せになれるかも
0179デフォルトの名無しさん
2007/07/24(火) 00:09:10検索したら巡回セールスマン問題の解法アルゴリズムは
たくさん出てくると思うんだけど。
それをプログラムにしていく過程でまた具体的な質問が出てきたら
ここで質問したらいいと思うが、その質問だと全部ゼロから書いてくれ
って言ってるようなもんだぞ。
コツとしてはMATLABは忘れてpseudo codeでいいから求める手順を
まずしっかり書き出してみることだな。
>>177,178
matlabとmapで検索しまくって出てきた答?
0180デフォルトの名無しさん
2007/07/25(水) 02:09:20traveling salesman annealingで検索したらそのまんまなのが見つかるな。
さすがに宿題でこのコード出すわけにはいかないだろうけど(笑)。
0181初心者
2007/07/25(水) 22:41:54参考にさせていただきます。
0182デフォルトの名無しさん
2007/08/03(金) 18:20:140183デフォルトの名無しさん
2007/08/03(金) 22:12:480184デフォルトの名無しさん
2007/08/05(日) 04:35:530185デフォルトの名無しさん
2007/08/06(月) 12:46:32help mov2avi
何が出来て何が出来なかったのか言ってくれないと判らない
0186デフォルトの名無しさん
2007/08/10(金) 21:15:59それらを一覧で表示したいのですが、
cat関数で横一列に繋げると、枚数が増えたとき表示のバランスが取れません。
何枚生成するかは、そのときそのときで違う場合で、よい方法はないでしょうか?
0187デフォルトの名無しさん
2007/08/10(金) 22:16:01x,yの平面に高さzで、高さを面で現したような。
n行3列の行列があって(例えばdat)、行毎に[x,y,z]のデータの組が順不同に入っている。
例えば dat = [ 1 2 0.5; 1 3 0.6; 3 8 1.5; 1 1.5 0.6];
plot3(dat(:,1),dat(:,2),dat(:,3),'.') では上手く行かないし、surfaceを使えば良いのか、検討が付かない。
何か手掛かりだけでも、誰か教えてください。
0188デフォルトの名無しさん
2007/08/11(土) 02:38:41で、そのフィルターが1個のときと1000個のときで
具体的にどう表示して欲しいんだ?
>>187
よく分からんけどsurfは? とりあえずhelp graph3dしろ。
0189186
2007/08/11(土) 18:33:27えっと、ある程度表示がよくなればまったく問題ないのですが
画像の右上に、パラメーターの数値を書き込んで
それらの画像をおおよそウィンドウ内部に
おおよそ正方形くらいになるように並べられらばと思っています。
0190デフォルトの名無しさん
2007/08/12(日) 00:37:31それが出きてればそれをプログラムに書けばいいだけ。文章から推測するに、
君はやろうとしていることを具体的に細分化して理解しようとしていない。
「おおまかにこんな感じ」ではプログラムにならない。
コンピュータはそんなにかしこくないんです。
0191デフォルトの名無しさん
2007/08/24(金) 10:49:420192デフォルトの名無しさん
2007/08/24(金) 11:14:080193デフォルトの名無しさん
2007/08/25(土) 03:05:55helpでコマンド一覧みたいなのを見たのですが整数の累乗根を出すものしか見つけられなかったので質問させてもらいました
0194デフォルトの名無しさん
2007/08/25(土) 04:42:51うちでは整数のみのそのコマンドが見つからないです。
0195デフォルトの名無しさん
2007/09/12(水) 18:12:42例えば、1行目、11行目、21行目…という風にです。
0196デフォルトの名無しさん
2007/09/13(木) 01:12:14これじゃダメ?
0197デフォルトの名無しさん
2007/09/13(木) 18:58:31ヒゲは、errorbarを使えば何とかなるのですが、
箱を描く方法が思いつきません。
どなたか、ご教授してください。
http://www.sci.kagoshima-u.ac.jp/~itls/Japanese/chapter3/topic/baseball/box.html
こういう図が描きたいのです。
0198デフォルトの名無しさん
2007/09/13(木) 19:20:26Financial Time Series Toolboxがいるらしい
そこでCandle Plotを描くだけならだれかが自作のmファイルを後悔してるかも知れないと思って
「MATLAB Candle Plot」でググったらCandle.mを無性公開しているサイトを発見したぜ
0199デフォルトの名無しさん
2007/09/13(木) 19:20:30fid = fopen(filename);
while 1
line = fgetl(fid);
if length(line)==0
break;
end
// 任意の操作をここに。
for ii = 1:10 // 10行を読み飛ばす。
fgetl(fid);
end
end
fclose(fid);
でOK?
0200197
2007/09/13(木) 19:57:27多謝。それです。
「ローソク足」というものがあるのですね。知りませんでした。
見つけていただいたコードを参考にしたいと思います。
以下、チラ裏。
plot( [x1 x2 x2 x1 x1], [uh uh lh lh uh] ));
で、箱が描けるとは。
matlab暦5ヶ月目で、新鮮な発見。
検索スキルとmatlab力を磨いて出直してきます。
0202デフォルトの名無しさん
2007/09/23(日) 16:27:08最小の値のある場所のインデックスを返す関数ってないよね
0203デフォルトの名無しさん
2007/09/23(日) 16:40:450204デフォルトの名無しさん
2007/09/23(日) 19:07:22で、わかりますよ^^
0205デフォルトの名無しさん
2007/09/25(火) 11:19:110206デフォルトの名無しさん
2007/09/26(水) 00:01:34set(gca, 'YTick', [ ... ]);
とかでどう?
0207デフォルトの名無しさん
2007/09/26(水) 16:05:17その時点での縦軸と横軸の値が出ますが,
それを,コマンドプロンプトでやりたいんですが,
関数かなにかありますか?
検索しても見つからなかったので,
やはり自分でプログラムを組むべきなのでしょうか?
0208デフォルトの名無しさん
2007/09/27(木) 15:34:32つ[gnuplot]
0210207
2007/09/27(木) 23:47:12そういったことができるmatlabコマンドはないんですね・・・
0211デフォルトの名無しさん
2007/09/28(金) 14:52:23結構基礎的な関数の気がするんだけど
0212デフォルトの名無しさん
2007/09/28(金) 22:45:390213デフォルトの名無しさん
2007/09/29(土) 11:00:490214デフォルトの名無しさん
2007/09/30(日) 15:08:48v*AをやろうとするとOut of memoryになっていまいます。
メモリーを追加しないで、効率よく計算するにはどうしたらいいですか?
よいBuilt-in関数とかないっすか?
0215デフォルトの名無しさん
2007/09/30(日) 19:10:11ヘルプ見なさい
0216デフォルトの名無しさん
2007/09/30(日) 22:31:40helpみました
吊ってきます…
0217デフォルトの名無しさん
2007/10/01(月) 17:27:37このLineをマウス操作で移動したり、リサイズしたりしたいと思ってます…。
Axes上にLineを引くときは、function axes1_ButtonDownFcn( )でいけました。
しかし、function axes1_ButtonDownFcn( )の中にselectmoverisizeを書くと、
Axes自体が移動・リサイズされてしまいました。
そもそも、Lineオブジェクトをselectmoveresizeで操作するのは無理なんでしょうか?
0218デフォルトの名無しさん
2007/10/02(火) 15:25:07axisで指定した範囲内のみプロットするようにするにはどうしたらよいのでしょうか?
0219デフォルトの名無しさん
2007/10/02(火) 16:06:06同一ファイル内で定義することはできないものでしょうか?
0220デフォルトの名無しさん
2007/10/02(火) 18:45:41aってのを3次元の行列だとして
surf(a(xmin:xmax,ymin:ymax,zmin:zmax))
じゃだめ?
意味取り違えてたらごめんね。
>>219
http://pc11.2ch.net/test/read.cgi/tech/1163125702/82-
同じスレなので出来れば読んでね。
0221デフォルトの名無しさん
2007/10/04(木) 03:19:130222デフォルトの名無しさん
2007/10/11(木) 14:00:14無料評価版
http://www.nag-j.co.jp/ToolBox.htm
0223デフォルトの名無しさん
2007/10/11(木) 14:23:250224デフォルトの名無しさん
2007/10/11(木) 16:29:25C で python のできることは全部できるけど python って需要あんの?
0225デフォルトの名無しさん
2007/10/12(金) 00:19:450226デフォルトの名無しさん
2007/10/12(金) 05:57:48手作業でやったら一生かかっても終わらん計算してるだろうに。
0227デフォルトの名無しさん
2007/10/23(火) 14:25:52clear allsyms z n p T
syms z n p T
h=0.1;
A=[exp(-h) int(exp(-T),0,h);-0.5 1];
b=[0;0.5];
c=[exp(-p) int(exp(-T),0,p)];
G=c/(z*eye(2)-A)*b;
R=z/(z-1);
Y=R*G;
y=iztrans(Y);
t=1;
for m=0:9,
v(1,m+1)=subs(y,n,m);
for l=0:9,
w(1,l+t)=subs(v(1,m+1),p,l*1e-2);
end
t=t+10;
end
figure
plot(w)
grid on
0228デフォルトの名無しさん
2007/10/23(火) 18:32:330229デフォルトの名無しさん
2007/10/25(木) 03:43:18一行目をのぞいて簡単に読み込む方法はないでしょうか?
0230デフォルトの名無しさん
2007/10/25(木) 07:53:380231デフォルトの名無しさん
2007/10/25(木) 16:19:500232デフォルトの名無しさん
2007/10/25(木) 22:13:34方法を教えてください
0233デフォルトの名無しさん
2007/10/25(木) 22:39:500234デフォルトの名無しさん
2007/10/26(金) 09:37:430236デフォルトの名無しさん
2007/11/01(木) 13:39:31specgramの逆の操作がしたいです。
X=specgram(x,128,8000);
で、
スペクトログラムXから音xを合成したいのですが、どうしたらいいですか??
0237デフォルトの名無しさん
2007/11/02(金) 00:57:30matlabじゃなくてoctaveの命令だったかも。
0238デフォルトの名無しさん
2007/11/02(金) 06:26:24計算すごく速くなる?
ベンチとかないかなぁ
0239デフォルトの名無しさん
2007/11/02(金) 19:57:08(例えば,パトカーのサイレン,人の叫び声等)
分類するソフトを個人的に作成しています.
とりあえずmatlabでスペクトル表示を行い,
様々なサウンドデータのスペクトルを見たのですが,
分類の条件を何にしようか考えています.
「パトカーのサイレンは○○Hzで特に高いピーク値を得られる」
などの特徴を分類する際の条件にできるかなと思ったのですが,
この他に,音を分類する上で有効な条件となるようなものを
ご存知の方がいましたらご教授お願いします.
0240デフォルトの名無しさん
2007/11/02(金) 20:58:500241デフォルトの名無しさん
2007/11/02(金) 21:45:160242デフォルトの名無しさん
2007/11/04(日) 12:40:22早速ですが質問させて下さい。
任意形状の2次元物体をメッシュ切りした上に、
コンターグラフの様な物を描かせたいのですが、
どなたか出来る方法をご存じないでしょうか?
宜しくお願いします。
0243デフォルトの名無しさん
2007/11/04(日) 19:30:340244デフォルトの名無しさん
2007/11/05(月) 20:40:09SIM
0245デフォルトの名無しさん
2007/11/07(水) 10:02:25ループとsum関数を使えばすぐに出来るんですがね
0246デフォルトの名無しさん
2007/11/07(水) 10:05:37Image Processing Tool Boxだったかにあるよ。座標変換してからinterp2に流し込めばすぐにできるけどね。
0247デフォルトの名無しさん
2007/11/07(水) 22:42:27じゃぁ、ループとsum関数を使えば?
0248デフォルトの名無しさん
2007/11/08(木) 01:47:43matlab ではできるだけループを使わないのが重要
速度がダンチ
0249デフォルトの名無しさん
2007/11/08(木) 05:18:32B=A(1:2:end,1:2,end)+A(2:2:end,1:2:end)+A(1:2:end,2:2:end)+A(2:2:end,2:2:end);
0250デフォルトの名無しさん
2007/11/08(木) 05:19:060251デフォルトの名無しさん
2007/11/09(金) 15:59:58SCRIPT anfisを関数として実行してみてください.
これを解決するにはどうすればよい のでしょうか?
一週間前ぐらいにMATLAB始めた者です。
0252デフォルトの名無しさん
2007/11/09(金) 20:08:08SCRIPT anfisを関数として実行してみてください.
0253デフォルトの名無しさん
2007/11/11(日) 22:32:56分からなさすぎてノイローゼになりそうです。
0254デフォルトの名無しさん
2007/11/12(月) 02:23:500255デフォルトの名無しさん
2007/11/12(月) 07:39:220256デフォルトの名無しさん
2007/11/13(火) 21:23:48set(h, 'xlim', [x1 x2]);
じゃダメなの?
0257デフォルトの名無しさん
2007/11/16(金) 21:18:38MATLABに変換したいのですが、手書き以外で
何かいい方法あったら教えてください。
0258デフォルトの名無しさん
2007/11/16(金) 22:16:21周波数軸をどうやって設定すればよいかわからないのです。
パルスはガウシアンパルスでUWBなので5ギガ位まで表示させるつもり何ですが、うまくいかないのです。
どなたかお願いします。
0259デフォルトの名無しさん
2007/11/17(土) 02:50:17グーグルの使い方くらい知らないと
今後いろいろ苦労すると思うから覚えた方がいいよ。
0260デフォルトの名無しさん
2007/11/17(土) 18:16:24A = load("hoge.txt");
B = A(:,4);
みたいに、全部読んで目的列以外は捨てればいいんですが、
ファイルのサイズが大きいと、
全部読むのに時間がかかるので、効率化したいのです。
026118
2007/11/17(土) 23:13:55これってなぜなんでしょうか?
0262デフォルトの名無しさん
2007/11/18(日) 00:14:17dlmreadのマニュアル読むと良いよ。
0263デフォルトの名無しさん
2007/11/18(日) 13:49:03通常のデータであれば、最小二乗法ですが、対数データの場合はどのようにやればよいのでしょうか?
0264デフォルトの名無しさん
2007/11/18(日) 16:04:560265beta-infinite
2007/11/20(火) 13:16:10http://beta-infinite.blogspot.com/
0266デフォルトの名無しさん
2007/11/25(日) 19:51:530267デフォルトの名無しさん
2007/11/26(月) 18:14:01誰か請負いませんか?
価格は応相談、MATLAB使えてBP法分かる人ならそんなに難しい作業じゃないと思います
仕様とかその辺は請け負ってくれる人がいたらメールなりなんなりで連絡します
0268デフォルトの名無しさん
2007/11/26(月) 18:32:59月80万だったら考えるけどね。
それかNNツールキット買えばいいんじゃないの?
0269デフォルトの名無しさん
2007/11/26(月) 18:46:20層やニューロン数を完全に一般化した物でなければ速攻で作れるでしょ
もちろんfor文抜きでな
0270267
2007/11/26(月) 19:12:503時間未満:一律12000円
3時間以上:時給4000円
7時間以上:一律28000円
このあたりでよろ
おれ自身じゃ作れないので金で解決する
0271デフォルトの名無しさん
2007/11/26(月) 19:19:220272デフォルトの名無しさん
2007/11/26(月) 19:29:200273デフォルトの名無しさん
2007/11/26(月) 20:31:277時間以上28000円は安いな。
0274267
2007/11/27(火) 00:00:36秘密厳守の上その時点で断ってくれてもOKだから
0275デフォルトの名無しさん
2007/11/27(火) 00:06:40全然予算がないようだし学生の卒論か?
0276267
2007/11/27(火) 01:14:15まさにそれ
誰か頼むよ〜
0277デフォルトの名無しさん
2007/11/27(火) 01:19:35↑この最後のページにある問題を教えてください。
参考の為に問題文だけ書くと・・・
1)40名のクラスがあった時、すべての人の誕生日が異なる確立をモンテカルロ法で計算しなさい。
2)その結果を解析的に求めた結果と比較・考察しなさい。
よろしくお願いします。
モンテカルロ法が使えるプログラムはMATLABと書いてあったのでここに質問しました><
スレ違いでしたらすみません。。
0278デフォルトの名無しさん
2007/11/27(火) 06:40:060279請負人
2007/11/27(火) 11:53:450281デフォルトの名無しさん
2007/11/27(火) 18:59:28バカ学生に使いこなせるとは思えん
0282デフォルトの名無しさん
2007/11/28(水) 15:25:32同時にファイル内の関数名もあわせて変えてくれるとベスト
0283デフォルトの名無しさん
2007/11/29(木) 23:23:21このページの
h=plot(0,0,'.b','MarkerSize',30,'EraseMode','xor');
を使ってアニメーションを作る方法で、
同時に2つの色の違うボールを描画するにはどうすればいいのですか?
0284デフォルトの名無しさん
2007/11/29(木) 23:34:51面積を求めることは可能でしょうか。
ファイルをアップしましたので、よろしかったら見てみてください。
http://www.csync.net/service/file/index.html
(ファイル名はmatlabです)
画像の灰色の部分の面積を求めたいのですが、
積分のやり方もわからないのです(:_:)
あとMファイル(txtになってしまってます)のコピーが二つありますが、
mensekiの方は画像の元になるグラフが書けます。
danmenの方は、元のプログラムですが、
xの値を0〜0.5まで変えると赤と緑の線が一周するように
できているのですが、この二つの線と、黄色の線が作る面積を求めたいんです。
どんな方法でもいいのでどなたか教えてくださいm(__)m
0285beta-infinite
2007/11/30(金) 00:29:49「MATLABの極」にソースをアップロードしました。いかがでしょうか
http://beta-infinite.blogspot.com/
0286デフォルトの名無しさん
2007/11/30(金) 03:26:05MAT LABで書いたFigureのX軸Y軸をX→Y、Y→Xと逆にしたいのですが
どうすればいいんでしょうか?お願いします。
0287283
2007/11/30(金) 10:53:34ありがとうございます。
今までhold onとか使っていたんですが、こんなシンプルにいけたんですね。
ですが、シミュレーションしたものをアニメーションとして表示したいので
この方法だとどうしても描画が遅くてシミュレーションの結果通りに描画できません。
そこで>>283の方法は高速だということなので、
>>283のイレースモードxorを使う方法でのやり方を知りたいのです。
>>283の方法以外でも高速に描画できる方法をご存知の方はお願いします。
具体的にしたいことは、
・2つボールの0.001秒毎の位置が2つの配列に入っている。
・それをある時間dt秒毎に描画したい。
・1回の描画毎にpause(0.001*dt);などして時間に正確にアニメーション化したい。
自分のやり方や>>285さんのやり方だと
dtを大きくすればするほどアニメーションがゆっくりになってしまいます
0289MATLABの極
2007/11/30(金) 12:02:44PAUSE(n) は、n秒間停止して、その後実行を続けます
当然ですが、pause(dt)のdtを大きくすれば、
アニメーションがゆっくりになってしまいます
0290MATLABの極
2007/11/30(金) 13:29:41view(90,90)という関数を使えば、いいと思います。
http://beta-infinite.blogspot.com/2007/11/matlabfigurexyxyyx.html
に参考
0291283
2007/11/30(金) 13:44:06ですが、dtを大きくするとその分荒いサンプリングをすることになるので
描画時間がdt秒に比べて十分小さければ同じようなアニメになるはずですよね
コマ送りになるかどうかの違いはあれど。
でもやはり描画時間はそこまで小さくするのは無理なのでしょうか。
MATLABではこんなことはできないのでしょうか
0292MATLABの極
2007/11/30(金) 14:04:16現状の1コマの処理時間は、
= matlabの演算時間 + 描画の時間 + pause(dt)の時間
matlabの演算時間 + 描画の時間をなくする方法は、getframe,movie,movie2avi関数で
使うといいと思います。
http://beta-infinite.blogspot.com/search/label/%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3
に参考
0293デフォルトの名無しさん
2007/11/30(金) 15:21:360294MATLABの極
2007/11/30(金) 15:45:10MATLABの修業中です。覚え書きのブログだと思っていただければ、
0296デフォルトの名無しさん
2007/11/30(金) 17:13:210297デフォルトの名無しさん
2007/11/30(金) 17:57:240298デフォルトの名無しさん
2007/11/30(金) 21:40:020299デフォルトの名無しさん
2007/11/30(金) 22:31:07help fftとコマンドを打って出てきた説明を理解できなければ
回線を切って死ぬか教授に頭を下げて教えを請いなさい
0300デフォルトの名無しさん
2007/12/01(土) 04:36:12beta-infinite.blogspot.comだけは見ないように。
0301デフォルトの名無しさん
2007/12/01(土) 12:59:020302デフォルトの名無しさん
2007/12/01(土) 16:02:42プログラムで図を描かせたときにX,Y,Zラベルの刻みのラベルを
変更したいのですが、関数などプログラムで書かせることができるでしょうか?
少し伝わりにくい文章ですが、よろしくお願いします。
0303デフォルトの名無しさん
2007/12/01(土) 16:26:010304デフォルトの名無しさん
2007/12/01(土) 17:18:44関数名リネームって>>282が言ってるようなことか?
もしそうならファイル名と違ったらファイル名の方が優先なだけだから
コード中の関数名は適当でOK。
しかしそういう時は普通呼ぶ側のコードも変えないといけないから
どっちにしろ一括置換とかする程度の手間をはぶくのは無理なわけで
コードの頭の関数名変えるくらいの手間は取るに足らないと思うが。
0305デフォルトの名無しさん
2007/12/01(土) 19:52:21ここ見るといいよ
http://www.mathworks.com/support/tech-notes/1700/1702.shtml
0306デフォルトの名無しさん
2007/12/02(日) 18:39:33できる。
0307デフォルトの名無しさん
2007/12/04(火) 06:02:50NxD 派? DxN 派?where N is the number of vectors and D is the dimension of each vector.
どっちのほうが親切なんだろう?toolbox によって(人によって)違うんだよねぇ。
0308デフォルトの名無しさん
2007/12/04(火) 09:55:13simulinkである変数がある値になったときシミュレーションを終了したいのですが
どうすればできますか?
0309デフォルトの名無しさん
2007/12/05(水) 06:53:25figureウインドウを作成してgetframeで取り込む場合、スクリーンキャプチャをしているようで、
他の作業をすると、その画像がムービーの中に入ってしまいます。
そのためムービー作成中は何も作業ができません。
0310デフォルトの名無しさん
2007/12/05(水) 16:25:53X=dicomread('--.dcm');
[Y,map] = gray2ind(X);
imwrite(Y,map,'--.jpg','jpg');
とすると、colormapを使用したimshowの表示画像と異なってしまいます。
よろしくお願いします。
0311デフォルトの名無しさん
2007/12/05(水) 18:06:21要素の大きさが対角成分の要素の大きさの0.5から2倍の範囲なら1で置換、
それ以外なら0で置換する、
ってforループを使わずにできるでしょうか?
0312デフォルトの名無しさん
2007/12/05(水) 23:19:500313デフォルトの名無しさん
2007/12/06(木) 00:59:41対角行列なら対角成分以外すでに全部0やん
0314デフォルトの名無しさん
2007/12/06(木) 02:21:480315デフォルトの名無しさん
2007/12/06(木) 08:48:340316デフォルトの名無しさん
2007/12/07(金) 01:04:38僕はMatlabで音系のことをやってるけど、
wavwriteとかのデフォルトが行=サンプル/列=チャンネルなので、
ベクトルの集合はいつも縦長ベクトルを横にいくつか並べるというかんじ。
DxNってことになるのかな?
0317デフォルトの名無しさん
2007/12/07(金) 12:48:35u2=[ [ { arctan( ( 1-k ) * cot( u2*v*w ) -b*tan(u2*v*w) ) } /( 2*a) ] + ( r*π ) ] / [ { arctan( (1-k) * cot(v*w) -b*tan(v*w) ) } / (2*a) ]
a=sqrt(k)*(y/x-x/y)
b=k*(y/x)^2-(x/y)^2
matlab流の書き方じゃなくてすみません。
上記の連立非線型方程式からxとwを数値解として求めるプログラムをつくりたいのですが・・・
x,w 以外の値はすべて既知で、
u1,u2 は 1<u1<u2<=3 である任意の実数
q,rは 0または1
それ以外は任意の正の実数
分母は必ず正の値(になるはず)
最適解を求める際に、分子のarctan(・・・)の項が負の値になってしまう時にはqまたはrを「1」にしてπを加える
それ以外の場合にはq,rは「0」
と、こんな感じなのですが,どなたかサクっと作ってくださいませんでしょうか・・・
0318デフォルトの名無しさん
2007/12/12(水) 05:19:530319デフォルトの名無しさん
2007/12/12(水) 10:23:37一行にいくつ数があるかわからないときにどうやって読み込んだらいいんだ?
ちなみにこんなファイルフォーマット
1 1:8392 2:8384.23 4:9832.82
2 2:8329 3:8389.34 5:9328.82
3 4:9838
先頭の 1,2,3 は最終的には捨てる行数
1:8392
は要素[1]に8392という値ということ。そして最初の行は 3 を飛ばして 4 に行っている。
そして最後の行は、他の行と読みこむ数が違う。
0320デフォルトの名無しさん
2007/12/12(水) 10:36:230321デフォルトの名無しさん
2007/12/13(木) 04:09:16それを一発で君の思い通りに読んでくれる
ファイル読み込み関連の関数が貧弱じゃないやつって何?
煽ってるんじゃなくて単に興味があるから知りたい。
ExcelとかRとかできるんかな?
0322デフォルトの名無しさん
2007/12/13(木) 12:21:500323デフォルトの名無しさん
2007/12/13(木) 13:11:340324デフォルトの名無しさん
2007/12/13(木) 13:25:52フリーフォーマットで他のソフトで出力されたデータを取り込みたいのですが
textreadがうまくいかず…
1
1.00000E+00 2.00000E+00 3.00000E+00 4.00000E+00 -0.40763E-13 -0.22240E-04
2
5.00000E+00 6.00000E+00 7.00000E+00 8.00000E+00 -0.84319E-13 -0.22422E-04
と並んでるデータがありまして、このデータの6つ並んだうちの
後ろ二つを取り込んで行ベクトルにしたいんです。
で、textreadを用いて
[head1,data1,data2,data3,data4,data5,data6,] = textread('ファイル名.txt', '%u %f %f %f %f %f %f')
とやってみたものの、うまくいきません。
どうやら1の後ろに何かがあるとmatlabが認識し(ホントは改行だけのはず)
data1〜6 (%fの指定部分)に0をいれとります。
そして次の行に移行し、そこではきちんとデータを拾えてます。
周波数を表す 1 と 次の行の 1.00000E+00 を取り込むとき
%u %fだとフォーマットの指定に不足があるのでしょうか??
0325デフォルトの名無しさん
2007/12/13(木) 14:21:09textread は一行ずつ読み込むんだろ?
最初の行は先頭以降何もないから0をが入っていくと。
[data1,data2,data3,data4,data5,data6,] = textread('ファイル名.txt', '%f %f %f %f %f %f')
として、奇数行と、偶数行に後でわけるとかになるんじゃね?
0326デフォルトの名無しさん
2007/12/13(木) 15:38:43以前同様のものを読み込んだ際に行ごとでなかったんですよね
たとえばこんなデータ
1 1 0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.58726901E-12 0.55467926E-06
を読み込むとき、
[head1,head2,data1,data2,data3,space1,space1,data4,data5,data6] = textread('testATV.txt','%u %u %f %f %f %c %c %f %f %f');
で、data5,data6に
0.58726901E-12 0.55467926E-06
を格納できたんです。
これって、五つ目の%f(浮動小数点)のあとに%c(スペース)を読み込んでるので
行をまたいでも効果があることになると思うんです。
0327デフォルトの名無しさん
2007/12/13(木) 15:39:320.00000000E+00 0.58726901E-12 0.55467926E-06
0328デフォルトの名無しさん
2007/12/13(木) 15:41:181 1 0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.58726901E-12 0.55467926E-06
0329デフォルトの名無しさん
2007/12/13(木) 15:42:561番目、2番目の1の下にはスペースが存在していて
3番目の0.00000000E+00 と下の行の0.00000000E+00 は
列がそろっています。
0330ks
2007/12/16(日) 14:41:45教えてください。
========
1次遅れ+無駄時間要素を含む制御対象の限界感度法による
PIDパラメータをmatlab上で、どう求めるんですかね〜
========
教えてください。
========
0331デフォルトの名無しさん
2007/12/21(金) 01:33:00textreadにこだわらなくてもいいんじゃないの?
0332デフォルトの名無しさん
2007/12/27(木) 03:52:31ループが終わるごとに変数をclearした方がよかったりします?
不振な挙動。。
0333デフォルトの名無しさん
2007/12/27(木) 09:04:36それにしても、Matlabバージョンとか書かないと。
0334デフォルトの名無しさん
2007/12/28(金) 00:55:49ちゃんと全部読み直せ。
0335デフォルトの名無しさん
2008/01/07(月) 02:46:00fit関数を使ってフィッティングをしているのですが、
フィッティング後の曲線のパラメータが読み取れません。
fit1 =
一般モデル Exp1:
fit1(x) = a*exp(b*x)
係数(95% 信頼区間付き):
a = -10 (-10.17, -9.831)
b = -0.01371 (-0.01403, -0.01338)
こんな感じでフィッティングしたあと、bの値を使いたいのですが、
どうすれば読み取れますか?
初心者の質問ですみません。
0336デフォルトの名無しさん
2008/01/08(火) 00:30:090337デフォルトの名無しさん
2008/01/08(火) 00:51:570338336
2008/01/10(木) 14:39:29カラーは白黒でよいのですがそれでも無理ですか?
0339デフォルトの名無しさん
2008/01/10(木) 16:15:22それは、フォーマット変換したいと言うこと?
それとも、2値のメッシュをグレイにしたいと言うこと?
0340デフォルトの名無しさん
2008/01/10(木) 22:09:11それを画像として処理したいのですが、現在は
plot(point(:,1),point(:,2));または
line(point(:,1),point(:,2));
pointは100*2行列、xy座標の点100個としています。
これだとプロット結果を保存しても画像のサイズが変更されてしまいます。
点と点を直線で結んでいく関数などありましたら教えていただけないでしょうか?
0341デフォルトの名無しさん
2008/01/11(金) 04:51:0510000x10の行列Aがあるとします。
A*A'だとout of memoryと出力されるのですが
A'*Aだとちゃんと計算結果が出力されます。
考えてもイマイチ理由が浮かんで来なかったのでどなたか教えてください〜!
単純な質問で失礼しました。
0342デフォルトの名無しさん
2008/01/11(金) 07:34:46後者は 10x10
の出力になるだろう?明らかすぐる
0343デフォルトの名無しさん
2008/01/11(金) 08:40:100344デフォルトの名無しさん
2008/01/11(金) 09:11:510345デフォルトの名無しさん
2008/01/11(金) 15:54:33ありです。
0346デフォルトの名無しさん
2008/01/12(土) 16:46:006種類のデータを1枚の図に、白黒で書く、ということで困っています。
0347デフォルトの名無しさん
2008/01/12(土) 21:13:17解決しないかも知れないけどマーカと併用するのはダメなんですか
線種で区別できる程に線が絡み合ってないのならそれでいけるのではないでしょうか
0348デフォルトの名無しさん
2008/01/12(土) 22:26:34フォーマット変換のほうだと思います。
0349デフォルトの名無しさん
2008/01/15(火) 10:21:20MATLABでなくていいなら、画像ビューワでも画像エディタでもいくらでもやりようがありそうだが。
何を、何故、MATLABでやりたいのか全然判らんのだよ。
0350デフォルトの名無しさん
2008/01/15(火) 22:46:03MATLABで画像処理の勉強をしろといわれ、つい2値化の画像を白黒だけの
カラー画像に変えてやろうと思った。
0351デフォルトの名無しさん
2008/01/16(水) 00:07:40カラー画像っつったらRGBとか3チャネルあるやつを普通は指すんだよ。
0352デフォルトの名無しさん
2008/01/16(水) 00:15:23R == G == B のことだろ
それより2値化の画像って何だ?
2値の画像だろ
0353デフォルトの名無しさん
2008/01/17(木) 06:03:13最小二乗でフィットさせるときの方法とかいうのが分からないので教えてください。
0354デフォルトの名無しさん
2008/01/17(木) 12:20:280355デフォルトの名無しさん
2008/01/17(木) 17:09:55エスパー回答すると、im2bw関数とかで2値化してしまった画像は、0が黒、1が白になります。
そしてどちらかの値しか取れない。
これをグレースケールの画像に変換したい場合は、0〜255の値を扱えるように拡張して、その後に掛け算をしてあげると良いです。
具体的には
BW; % 2値化された画像
I = uint8(BW)*255; % グレースケール化された画像
な、感じです。
実際は、Image Processing Toolbox内のim2uint8とかいう関数が同じ事をしているよ。
RGB化したい場合はさらに
[w,h] = size(I);
CI = zeros(w,h,3); % カラーイメージを入れるための準備
CI(:,:,1) = I; % 赤に代入
CI(:,:,2) = I; % 青に代入
CI(:,:,3) = I; % 緑に代入
…でいいはず(うろ覚え
0356デフォルトの名無しさん
2008/01/18(金) 00:32:14どういう関数系にフィットさせるの?
0357デフォルトの名無しさん
2008/01/18(金) 06:14:54よくある1次遅れ、2次遅れ、むだ時間とかいうパラメータを使った低次元伝達関数です
たとえば
G(s) = Kωn^2 / (s^2 + 2ζωns + ωn^2) * e^(-τs)
のパラメータを出したいんです
0358デフォルトの名無しさん
2008/01/18(金) 06:15:39× >>357
○ >>356
0359デフォルトの名無しさん
2008/01/18(金) 06:31:510360デフォルトの名無しさん
2008/01/18(金) 08:58:30ttp://www.wakayama-u.ac.jp/~miw/ApIp/01/2.html
0361デフォルトの名無しさん
2008/01/18(金) 10:53:24対数プロットでは直線になるので、何か最小自乗法のような物は使えないでしょうか?
0362デフォルトの名無しさん
2008/01/18(金) 17:47:290363デフォルトの名無しさん
2008/01/18(金) 19:14:34対数変換して直線フィットすると、ある値が出る。
それを初期値に>>362にしたがって、解を探す。
0364デフォルトの名無しさん
2008/01/19(土) 12:02:15ごめんなさい
その最小二乗でだけっていうところが分からないでの聞きにきたんですよね・・・
0365デフォルトの名無しさん
2008/01/19(土) 12:47:420367デフォルトの名無しさん
2008/01/19(土) 21:23:54ployfitって単なる多項式しか出来ないんですよね
>>366
MATLAB以前の問題かもしれないんですけど、
やるとしたらデジタルで出てきたデータをz変換してそれを行列使って最小二乗してやるということになるのでしょうか?
0368デフォルトの名無しさん
2008/01/20(日) 15:18:25伝達関数の場合のプロセスが分からないっていうことなのだが教えてもらえないのか?
なにを調べたらいいか分からないからここに来たんだが
0369デフォルトの名無しさん
2008/01/20(日) 18:50:24あなたはどういうデータを持っていますか?
理論的には、どういう操作をしますか
どういう式にあわせて、係数を推定したいですか?
0370デフォルトの名無しさん
2008/01/20(日) 19:08:25まず>>357のような伝達関数で出力されたデータを>>360のような行列表記するとどうなるのか
そもそもこのやり方以外に方法があるのならどういったものがあるのか
ということをよければ教えてくれ
0371デフォルトの名無しさん
2008/01/20(日) 20:11:172次の遅れ系なら解は2つの指数関数の和だろ?
それに入力パルス(今の場合e^(-τs) なのかな?)との叩き込み積分が掛かっているだけ。
それをコスト関数にしてfminsearchにかければいい。
行列表記ができるのはpolyfit関数なんかが使える線形な式のみじゃないの?
0372デフォルトの名無しさん
2008/01/21(月) 13:58:02せっかくz空間で来まった式で表現できるG(z)がもったいないなぁと思ったんですが、そんなものですか?
あと、e^(-τ*s)っていうのはむだ時間を考えたときのです。いるかいらないかは実験データを見てから決めようと思うんですけど。
今functionの使い方を勉強してる段階ですが、fminsearchでやってみます。
0373デフォルトの名無しさん
2008/01/21(月) 23:06:45なのか?
なにか教えてもらえると思うとすぐに下手に出るのか。
0374372
2008/01/21(月) 23:24:440375デフォルトの名無しさん
2008/01/22(火) 21:13:48なぜなら、あなたが何をしたいのかが、伝わらないからである。
伝達関数の求め方はいろいろあるんだよ。
0376デフォルトの名無しさん
2008/01/22(火) 23:54:33教えて欲しいこと:伝達関数の求め方
求め方として最小二乗かなと思って>>353と書き込んだんだがどこが伝わらなかったんでしょうか?
0377デフォルトの名無しさん
2008/01/23(水) 09:50:12それで伝わっていると思うのなら、
あんたの理解が甘い。
先生に教えてもらえ。
0378デフォルトの名無しさん
2008/01/23(水) 13:29:48死にます。java1.5だとそうなるらしいのですが、-nojvmというオプションを渡すと
GUIなしで起動するという話もみました。でも_JAVA_OPTIONという環境変数に-nojvmを
渡しても、Matlabが起動しません。(matlabのactivationはまだできてない)。どなたか同様の問題を乗り越えた方はいませんか?
0379デフォルトの名無しさん
2008/01/23(水) 18:24:490380デフォルトの名無しさん
2008/01/23(水) 20:08:24AXIS([XMIN XMAX YMIN YMAX])
とすればできますが、
subplotを使ったグラフの軸をスケーリングするには
どうしたらいのでしょうか?
0381デフォルトの名無しさん
2008/01/23(水) 21:17:09同じ
0382デフォルトの名無しさん
2008/01/23(水) 21:51:14同じでできるんですか?
AXIS([XMIN XMAX YMIN YMAX])としてもできなかったので
聞きにきたんですが。もう一度試してみます。
もしこれでできない場合、他に方法はないでしょうか?
0383デフォルトの名無しさん
2008/01/23(水) 23:35:12subplot(211)
plot(x,y)
axis([xmin xmax ymin ymax])
%
subplor(212)
plot(x,y)
axis([xmin xmax ymin ymax])
0384デフォルトの名無しさん
2008/01/24(木) 09:38:12subplot(2,1,1);
plot(x, y);
set(gca, 'xlim', [xmin xmax]);
set(gca, 'ylim', [ymin ymax]);
でもいけるのでは?
0385デフォルトの名無しさん
2008/01/24(木) 13:55:38できました。ありがとうございました!
自分が馬鹿でした。
axis設定してからplotしてました。
plotしてからaxisなんですね。
0386デフォルトの名無しさん
2008/01/27(日) 13:14:09set(gca, 'xlim', [xmin xmax], 'ylim', [ymin ymax]);
で桶では?
0387デフォルトの名無しさん
2008/01/27(日) 18:20:12フィルタ無しの方法はありませんか?
海外のMATLABのヘルプでは値でNo filteringにできるそうなんですがバージョンが
古いのかバージョン7.2では出来ません。
0388デフォルトの名無しさん
2008/01/27(日) 20:46:380389387
2008/01/28(月) 04:32:33専門外のことなのでどうにもこうにもツールに頼ってしまってorz
0390デフォルトの名無しさん
2008/01/28(月) 09:50:41で、中身見てフィルタ部分カットしたのを書くのはどうですか?
0391デフォルトの名無しさん
2008/01/28(月) 12:49:16それで角度でループさせるの。
iradonの中を触るんだったら、Hというのがフィルター関数なので、この部分を取り去るか、1にしてしまうか。
勉強のために1から作りたいんだったら、C言語で出ている教科書を買って、ネチネチと移植してもいい。
おれは院の先輩の薦めで「SPECT画像再構成の基礎」(医療科学社)という本の中に出ているフーリエ変換法のプログラムを移植したよ。
0392デフォルトの名無しさん
2008/01/29(火) 00:08:17いつもマウスでウィンドウのサイズを変えて
縦横比を見やすく調整しているんですか
コマンドでできないでしょうか?
0393デフォルトの名無しさん
2008/01/29(火) 02:07:230394デフォルトの名無しさん
2008/01/29(火) 12:54:18って感じですね?
できました!
ありがとうございます
0395デフォルトの名無しさん
2008/01/29(火) 15:41:21print -deps 〜.eps
のようにグラフをepsファイルに出力してるんですが
その出力したepsファイルのサイズ(縦横比)を変えることはできないでしょうか?
set 'position'でできるかと思ったらできませんでした。
0396デフォルトの名無しさん
2008/01/29(火) 16:20:06変わりますよね。その時ゼロクロッシングとかいう
エラーでちゃいます。ゼロクロッシングの検知を
無効にするとうまくシミュレーションできません。
何でですか?
0397デフォルトの名無しさん
2008/01/29(火) 20:45:50483 名前:名無しさん@5周年[] 投稿日:2008/01/29(火) 16:04:56 ID:
自由落下した物体が床で跳ね返る時、速度の符号が
変わりますよね。その時ゼロクロッシングとかいう
エラーでちゃいます。ゼロクロッシングの検知を
無効にするとうまくシミュレーションできません。
何でですか?
0398デフォルトの名無しさん
2008/01/30(水) 16:50:480399395
2008/01/30(水) 20:04:51printに-zbufferとか-openglオプションってのを
つけてみてもできなくて困っていたのですが
ずばりそれでできました!ありがとうございます
0400デフォルトの名無しさん
2008/02/05(火) 13:58:03開発するときの設定の仕方ってどこか
にありませんでしょうか?m(_ _)m
0401デフォルトの名無しさん
2008/02/05(火) 17:04:41各xについてx-x/10<=x <= x+x/10の範囲でfの移動平均をとって平滑化をしたいんですが
ループを使わない方法はないでしょうか?
0402デフォルトの名無しさん
2008/02/06(水) 21:10:33カラーマップに対応する色で描画するにはどのようにすればいいのでしょうか?
X = 1:100; Y = 1:100; Z = 1:100;
[XX,YY,ZZ] = meshgrid(X,Y,Z);
によってxyz空間とそれぞれの点に値を持つ100*100*100のA行列は用意できている状態です。
例えばカラーマップの範囲が0(青)〜10(赤)でありA(50,50,50)=10の場合
出力されるfigureの(50,50,50)の部分を赤に色付けしたいです
0403デフォルトの名無しさん
2008/02/08(金) 03:53:49ゼロ次ホールドの連続時間伝達関数である、
H = (1-exp(-sT))/s ; T:サンプリング周期[sec]
という表現をmatlab上で再現するにはどのようにしたらよいのでしょうか?
s = tf('s');
を使って直接表現しようと試みたのですが、上手くいきませんでした。
連続時間システムの制御器の設計及びコンピュータへの実装の際に
使用したいと考えています。
よろしくお願いします。
0404デフォルトの名無しさん
2008/02/08(金) 12:02:160405デフォルトの名無しさん
2008/02/12(火) 21:18:3210個の自動計測されたデータが列方向に並んでいるcsvファイルを
csvreadで一気に読み込んだ後に(例えばAとする)、
10個の列要素に小分け(A1〜A10)しようと考えています。
各要素の1行目は説明なので2行目から最終行までを選択して取り込むには
どうすればよいのでしょうか?
思いつきでA1=A(:,2:inf)とかしようとしたらエラーがでてしまいました。
多分while文とかでNaNがでるまで読み込み続けるとかすると思ったのですが
力尽きてしまいました。
やさしい人。お願い。
0406デフォルトの名無しさん
2008/02/12(火) 21:48:360407デフォルトの名無しさん
2008/02/12(火) 22:15:32よく読まずに書いてしまうが、infではなくendを使ってみたらどう
0408デフォルトの名無しさん
2008/02/12(火) 23:12:03というか綱渡りで仕事してるからけつに火がついてしまうのに懲りてないな。
ベンチャー高専隊
0409デフォルトの名無しさん
2008/02/12(火) 23:47:16で1列消せるはず
0410405
2008/02/13(水) 00:47:05さらに色々触ってみて疑問が沸いたので厚かましく質問させてください。
(長文ですみません、誰も呼んでくれないだろうなぁ・・・)
例えば、
-----------------
time data1 data2
1 10 100
2 11 99
3 10 102
4 9 98
| | |
-----------------
というデータをcsvファイルから読み込んで、
data1とdata2を1/1000倍してから
csvファイルとかExcelファイルに上と同じ書式でE書き込もうとして
下記のコードを書いてみました。
結果、xlswriteではうまく動くのですが、csvwriteではエラーが出ました。
セル配列を使えなかったようです。
私が自宅で使っているMATLABはバージョンが古く(ver.6.5)、xlswriteが使えません。
できれば古いバージョンでも動くファイル処理関数で対応できないものかと思っています。
0411405
2008/02/13(水) 00:48:21------------
clear all
Alldata = csvread('csvsample.csv', 1, 0);
Time = Alldata(2:end, 1);
Data1 = Alldata(2:end, 2);
Data2 = Alldata(2:end, 3);
Data1 = Data1/1000;
Data2 = Data2/1000;
Dataset = [Time Data1 Data2];
Dataset_cell = num2cell(Dataset)
Label = {'Time', 'Data1', 'Data2'};
Outdata = {Label ; Dataset_cell};
%xlswrite('newxls', Outdata)
csvwrite('newcsv.csv',Outdata)
0412デフォルトの名無しさん
2008/02/13(水) 01:28:43今まではBMPで保存してXnViewの自動トリミングで余白を削ってはってました。
ただ、BMPだとWordでグラフを拡大縮小したりするとフォントがかすれたりして見た目がかなり汚くなります
ベクターフォーマットのemfファイルで保存するのが一番きれいなのですが、グラフの余白を簡単に削る方法が見つからないです
XnViewでもemfファイルを読み込めるんですが、XnViewで自動トリミングしてemfファイルに保存すると、
ファイルサイズが10倍以上になって、しかもビットマップデータみたいに拡大縮小すると汚くなります
グラフの余白を簡単に削れてきれいに貼り付けられるうまい方法とかないですか?
0413405
2008/02/13(水) 02:19:36泥臭く下記のように書いてみました。
データ整理するのにxlsreadとかxlswriteって便利だなぁと思いました。
---------
clear all
Alldata = csvread('csvsample.csv', 1, 0);
Time = Alldata(2:end, 1);
Data1 = Alldata(2:end, 2);
Data2 = Alldata(2:end, 3);
Data1 = Data1/1000;
Data2 = Data2/1000;
Fid=fopen('newcsv3.csv', 'wt');
Label = {'Time', 'Data1', 'Data2'};
for i=1:length(Label)
fprintf(Fid, '%s,', Label{i});
end
fprintf(Fid,'\n');
Dataset = [Time, Data1, Data2];
[Rownum, Colnum] = size(Dataset);
for i=1:Rownum
for j=1:Colnum
fprintf(Fid, '%d,', Dataset(i,j));
end
fprintf(Fid, '\n');
end
fclose(Fid);
0414デフォルトの名無しさん
2008/02/13(水) 07:14:120415デフォルトの名無しさん
2008/02/15(金) 12:54:18グラフの大きさを指定して、拡大縮小せずに使えるようにする
0416デフォルトの名無しさん
2008/02/15(金) 15:21:130417デフォルトの名無しさん
2008/02/15(金) 16:11:340418デフォルトの名無しさん
2008/02/15(金) 17:19:00わかりやすいサイトとかがあればお願いします。
よろしくお願いします。
0419デフォルトの名無しさん
2008/02/15(金) 18:09:31まず、www.google.co.jp。日本語以外のサイトも調べよう。
0420デフォルトの名無しさん
2008/02/18(月) 22:58:560421デフォルトの名無しさん
2008/02/19(火) 04:52:22surf
0422デフォルトの名無しさん
2008/02/20(水) 16:17:32a = 'Hello World'
を
b[1] = 'Hello'
b[2] = 'World'
に分割するコマンドはありませんでしょうか.
0423デフォルトの名無しさん
2008/02/20(水) 16:40:360424デフォルトの名無しさん
2008/02/20(水) 16:55:39[ str,rem ] = strtok( a,' ' );
これで、最初のスペースまでの単語がstrに入り、残りがremに入る。
remの中をさらに切り分けたければこれを繰り返す。
str系の関数はC言語とほぼ同じだな。
0425デフォルトの名無しさん
2008/02/21(木) 23:23:05お願いします
0426デフォルトの名無しさん
2008/02/22(金) 01:14:460427デフォルトの名無しさん
2008/02/23(土) 23:13:43h1 = plot(x1)
hold on
h2 = plot(x2)
h3 = plot(x3) ...
といくつかのプロットを重ねた後、一つだけ(例えばx2のプロット)だけ消したい、または変更したいという場合、どうしたらいいですか?
全部プロットしなおせばいいんですが、ちょっと重い上に何度もやるプロットなんで、全部やり直すというのは避けたいんです。
0428427
2008/02/23(土) 23:15:570429デフォルトの名無しさん
2008/02/24(日) 10:19:580431デフォルトの名無しさん
2008/02/25(月) 11:05:16plot(X1)
hold on
plot(X2)
plot(X3)
legend({'X1';'test'},'X2','X3')
とタイトルや座標軸中の改行と同じように入力しても無理でした。
0432デフォルトの名無しさん
2008/02/25(月) 13:33:55横の左50画素、右46画素をカットして横幅を256画素に、
30×30の位置の色と同じものを上に縦16×横240くっつけて
256×256の画像にしたいのですが、どうすればいいでしょうか?
0433デフォルトの名無しさん
2008/02/25(月) 13:40:08なんでもかんでもMATLABでやりたいならしらね。
つーか、MATLABエキスパートに任せた。
0435デフォルトの名無しさん
2008/02/25(月) 20:47:37ある画像の一部分(オブジェクト)の画素値の平均をとりたいのですが、
ラベル付けして、オブジェクトの全ピクセルの座標は取ったのですが、
for i=r(min):r(max)
for j=c(min):c(max)
heikin=mean2(Img(i,j,:));
だと、オブジェクトの形が四角ではないのでオブジェクトの外側の画素値まで
計算してしまいます。
何かいい方法がありましたら教えてください。
0436デフォルトの名無しさん
2008/02/25(月) 21:04:19オブジェクトがなんなのかわかりませんが、その内側と外側で違う特徴的なものをfindで引っかけてやればいいのでは?
たとえばオブジェクトの外側が-100より必ず小さいのであれば
m = find( Img( : ) < -100 );
heikin = mean( Img( m ));
の2行でできるはず。
Imgの範囲を絞りたいのだったら、
i = r(min):r(max);
j = c(min):c(max);
m = find( Img( i : j ) < -100 );
heikin = mean( Img( m ));
forループは極力使うのは止めましょう。
0437435
2008/02/25(月) 22:08:15バッチリ上手く行きました。
差しでがましいですが
もう一つ質問が…
二値化の画像にラベル付けをしてあるのですが、
ある座標を与えて、その座標を含むオブジェクトのラベル番号、
もしくはそのオブジェクトを構成している全座標を入手したいです。
[r,c] = find(bwselect(Img2,i,j));
これが僕の絞り出した答えでしたが無理でした。。
いいアイディアがありましたら教えてください。
0438435
2008/02/25(月) 22:08:54バッチリ上手く行きました。
差しでがましいですが
もう一つ質問が…
二値化の画像にラベル付けをしてあるのですが、
ある座標を与えて、その座標を含むオブジェクトのラベル番号、
もしくはそのオブジェクトを構成している全座標を入手したいです。
[r,c] = find(bwselect(Img2,i,j));
これが僕の絞り出した答えでしたが無理でした。。
いいアイディアがありましたら教えてください。
0439デフォルトの名無しさん
2008/02/26(火) 21:13:42画像の読み込みをまずやってみよう
0440デフォルトの名無しさん
2008/02/27(水) 11:35:030441デフォルトの名無しさん
2008/02/27(水) 13:22:39後で別のソフトで変換
0442デフォルトの名無しさん
2008/02/28(木) 22:32:06統計的に(最小2乗法などを用いて)2次近似モデルを式として作成する関数を探しています。
例えば実験にて2つの入力を調整し、1つの出力が得られるものがあるとします。
そのときの計測条件を[x,y](2入力、ともにベクトル)、計測値を[z](1出力、ベクトル)としたときの
計測値Zに対するX,Yの2次近似モデルを作成したいのです。
アウトプットイメージとしては
Z=係数*X^2+係数*Y^2+係数*X*Y+係数*X+係数*Y+係数
のような感じです。
プロの皆さん、どうか教えてください〜
0443デフォルトの名無しさん
2008/02/29(金) 03:55:17z=[ z1,z2,......,zn ] '、x=[ x1,x2,......,xn ] ' , y = [ y1,y2,......,yn ] ' とし
z = A*x^2 + B*y^2 + C*x*y + D * x + E*y + F
とすれば
a = [ x.^2 y.^2 x.*y x y ones( length( x ),1) ];
x = [ A B C D E F] ' ;
とおいて
x = a\z;
で解けるはず。未知数が6つなので、データ数が少なくとも6つ以上ないと無理だけどね。
重み係数を使う必要がある場合は、ノルムを最小にするようにしないといけないけどね。
0444デフォルトの名無しさん
2008/02/29(金) 03:56:57find関数の中は条件文じゃないと機能しないのでは?
0445デフォルトの名無しさん
2008/02/29(金) 21:13:31ありがとうございますー、やってみます!
0446デフォルトの名無しさん
2008/03/02(日) 12:22:49>重み係数を使う必要がある場合は、ノルムを最小にするようにしないといけないけどね。
この意味が理解できないw
0447デフォルトの名無しさん
2008/03/03(月) 17:50:26ノルムというのは距離のこと
0448デフォルトの名無しさん
2008/03/03(月) 18:43:020449デフォルトの名無しさん
2008/03/03(月) 21:14:23matlab への翻訳がわからないのなら数式は記述しておくとか、
数式が記述してあるページとかを示しておくべきなんじゃないのか?
数式がわからないというのはスレ違いだろ?
0450デフォルトの名無しさん
2008/03/03(月) 21:32:41ウルサイ!
0451デフォルトの名無しさん
2008/03/03(月) 22:27:27レスがいただけないようなので、こちらで質問させてください。
MATLAB で
( x^2 ) + ( x * y ) + ( y^2 ) = 1;
主軸が斜めになっている楕円は
どのように plot2d すればいいのでしょうか?
0452デフォルトの名無しさん
2008/03/03(月) 23:41:30いや、そもそも変なこと書いてるのではないか?
0453デフォルトの名無しさん
2008/03/04(火) 00:26:46(EQをかけたい)のですが、どうすればよいのでしょうか?
フィルタを使う(fdatool)ではダメですよね?
宜しくお願いします
0454デフォルトの名無しさん
2008/03/05(水) 23:19:31ここを参考にすべし
http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
0455デフォルトの名無しさん
2008/03/06(木) 19:29:46このような3次元の物体の可視化を行っているのですが、物体の表面で金属のような質感を出すにはどのように
設定したらよいのでしょうか?
0456デフォルトの名無しさん
2008/03/12(水) 16:33:14「MATLABによる制御系設計」という本で勉強しているんですが、
MATLABの制御系コマンドを使えるフリーソフトを探しています。
検索すると無料でScilab,Octave,Freemat,有料でMATXというのがあるようですが、
制御系コマンドを使う時、互換性が最も高いなどお勧めの
ものがあれば教えてください。
0457デフォルトの名無しさん
2008/03/13(木) 00:42:000458デフォルトの名無しさん
2008/03/14(金) 11:53:20456
もちろんMATLABは知ってますが・・・・
研究でMATLABは使ってきたのですが、これからは
家でも勉強したいのであのような質問をしたのですが。
拙い質問と感じられたのでしたら申し訳。
0459デフォルトの名無しさん
2008/03/14(金) 12:07:500460デフォルトの名無しさん
2008/03/14(金) 15:25:430461デフォルトの名無しさん
2008/03/14(金) 15:54:570462デフォルトの名無しさん
2008/03/14(金) 21:24:080463デフォルトの名無しさん
2008/03/15(土) 00:59:470464デフォルトの名無しさん
2008/03/15(土) 20:20:24ごもっともだと思います。
知り合いにもそういう意見をもらったんで、
そうしてみます。とりあえず、Scilabインストールしてみました。
金銭的に厳しいのでフリーのソフトから自分なりに試して
みようと思います。
>463
それもそうですね。
MATLABをインストールできるだけお金が貯まったそうしようと思います。
4月から社会人なので。
意見ありがとうございます。
0465デフォルトの名無しさん
2008/03/21(金) 11:58:18pyrhon.numpy
と
maxima
どっちがお勧め?
0466デフォルトの名無しさん
2008/03/22(土) 02:34:39python + scipy + matplotlib
0467デフォルトの名無しさん
2008/03/29(土) 04:30:27grid minor より細かくしたいでっす。
0468デフォルトの名無しさん
2008/04/08(火) 06:19:29movie2aviだと非圧縮しかサポートしていないようなのですが。
0469デフォルトの名無しさん
2008/04/09(水) 21:59:10例えば、
Y = X * X;
でYが与えられたとき、解Xを求めるには、
X = sqrtm(Y);
とすればいい。
ところで、次の場合、解Xを求めるにはどうすればいいんだろう?
分かる人いる?
Y = X * X'
※ 行列はすべて複素行列で、「'」は複素共役転置を表す
0470デフォルトの名無しさん
2008/04/11(金) 16:07:05コンパイルは普通に通るのですが、エラーが発生する箇所が時々出ます。
エラーが出た箇所や解決法をリスト化して書いてあるサイトなどは無いのでしょうか?
今回は解決したのですが、毎度これを解決するのは難儀なので。
今回はsystem関数で
-----------------------------------------
"プログラムのフルパス" -コマンドラインオプション
-----------------------------------------
としてあったのを
-----------------------------------------
cd "プログラムのあるフォルダ"
プログラム名 -コマンドラインオプション
-----------------------------------------
としたら動きました。
0471デフォルトの名無しさん
2008/04/11(金) 18:27:55どうでもいいが、ディレクトリをほいほい移動しちまっていいのか?
その後ファイルアクセスしてたら厄介だぞ。
0472デフォルトの名無しさん
2008/04/12(土) 15:04:330473デフォルトの名無しさん
2008/04/12(土) 21:48:45全員誘導に従うとは思えないけど
0474470
2008/04/14(月) 12:09:08ご指摘どうもです。
今回の場合は、外部のプログラムを1回呼び出すだけだったので問題はなかったです。
コンパイル時に動かないのは、プログラムのパスをダブルクォテーション(")で囲っているのにその後にコマンドライン引数あげている事なので…
あと、どうも他にMATLAB関連スレが見当たらないので一人事を書いておきます
・eval関数を使うとコンパイル後実行時にエラーが出る
mファイルをコンパイル時に外部mファイルが必要と判断された場合は、必要な外部mファイルは暗号化されてctfファイルにまとめられるが
eval文中で外部mファイルを
eval('foo(1);');
と呼び出すとコンパイル時に解析されないのでctfファイルに同梱されない
おそらくfevalやinline等の関数も同じ症状が出る
邪魔だったら文句言って下さい…
0475470
2008/04/15(火) 16:02:17evalやfeval、inline等の関数を使うと、コンパイル後、プログラムをを実行中にエラーが出ることがある
これはMATLABに同梱されている関数でもその対象となるものがある。
その関数の中でfevalなどが使われていると、やはり同梱されない関数が出てくるため実行エラーがある
Signal Processing Toolboxのaryule 関数でそういう症状があった。
0476470
2008/04/15(火) 17:18:30aryule関数ではなく、pyulear 関数でした。
独り言その3
このようにeval関数関係でエラーが起こる場合、一番有効な方法は
ctfファイルに必要な関数を同梱させるために一度も使わない関数を書いて
function foo()
関数1();
関数2();
関数3();
とコンパイルするmファイルに追記しておくと良いと思います。
0477デフォルトの名無しさん
2008/04/16(水) 19:47:180478デフォルトの名無しさん
2008/04/18(金) 01:55:22>>441
0479デフォルトの名無しさん
2008/04/18(金) 16:35:52MATLABにおいてベクトルの要素が複素数の場合に最大値を求めると、
最大値はなぜそれが最大値だとみなされるのでしょうか?
0480デフォルトの名無しさん
2008/04/18(金) 17:45:160481デフォルトの名無しさん
2008/04/18(金) 18:58:373+iと4-3iの場合、どのように大小を決めるかということです
0482デフォルトの名無しさん
2008/04/18(金) 19:19:090483デフォルトの名無しさん
2008/04/18(金) 19:21:55親切にありがとうございました
0484デフォルトの名無しさん
2008/04/18(金) 19:43:250485デフォルトの名無しさん
2008/04/18(金) 22:43:32速さになる、と聞いたのですが本当ですか?
0486デフォルトの名無しさん
2008/04/18(金) 22:58:210487デフォルトの名無しさん
2008/04/18(金) 23:06:07ありがとうございます。友人からそのことを聞いて、いまC++を勉強してるのが無駄な感じがしてきてたのですが、
やっぱり、MATLABがそれなりにできてコンパイラもある状態なら、あたらしくC++を勉強する必要はない、という
くらいですか?実行速度で、C++で作ったコードには勝てますか?
C++で行列使うのいやなんですよね。。。それでも速度でC++の方が速いなら、やる価値はあるのかと思ってたけど、
そうじゃないならC++とはバイバイしたいス。
0488デフォルトの名無しさん
2008/04/19(土) 10:39:12こちらは100円も掛からない。
0489デフォルトの名無しさん
2008/04/20(日) 11:28:41MATLABの関数を外部ライブラリみたいにつかうということですか?
0490デフォルトの名無しさん
2008/04/20(日) 21:43:48など、GUIで文字を入力した図をeps形式で保存しました。
これをillustratorで開くと、入力した文字が図形オブジェクトとして認識されてしまいます。
illustrator内で、文字オブジェクトとして認識させる方法はないのでしょうか?
0491デフォルトの名無しさん
2008/04/21(月) 19:15:01エラー: ==> avifile.addframe>ValidateFrame
Frame must be 440 by 439.
というエラーが出ます。ウインドウのサイズが問題なのだと思うのですが、
movie2aviコマンドに適切なウインドウサイズをプログラムで指定できませんか?
0492デフォルトの名無しさん
2008/04/22(火) 18:29:05可能でしたら、具体的にどのようにすれば求めればいいでしょうか?
(Mathematica、Maple、C言語など、他のソフトも使える環境にあります。Matlabより向いているソフトがあれば教えてください。
ちなみにソフトは苦手で、どれもにわかです。)
0493デフォルトの名無しさん
2008/04/22(火) 18:38:150494デフォルトの名無しさん
2008/04/22(火) 19:00:07方程式は、今ある状態ではニュートン・ラプソン法等で近似を行う必要があり、計算が膨大になりそうなので
ある程度n、簡略化を行おうと努力してるところです。
一応、線形にできる可能性もないこともないと思います。
知りたいのは、何十万通りの2つの変数を外部データから読み込んで計算するのにMatlabは適しているのか、ということです。
0495デフォルトの名無しさん
2008/04/22(火) 23:27:30rootsを使って多項式の解を求めるとき、
f(z) = z^-2 +9 のように逆数になってる場合どうすればいいのでしょうか?
また複素数面上に極座標表示するにはどれを使えばいいでしょうか?
0496デフォルトの名無しさん
2008/04/23(水) 15:09:13本当に何十万通りやらなければいけないのか、考えてみることが必要かと。
プログラム自体は何パターンでも計算可能
0497デフォルトの名無しさん
2008/04/23(水) 16:11:360498デフォルトの名無しさん
2008/04/23(水) 22:31:07xcorrは、相互相関係数を計算する関数だそうですが、
http://dl.cybernet.co.jp/matlab/support/manual/r14/toolbox/signal/?/matlab/support/manual/r14/toolbox/signal/xcorr.shtml
を読んでもよくわからないです。
マッチングする領域の画素データをx、yとすると、xcorr(x,y)はひとつの値になると
思うんですが、行列で出てくるみたいです。
xcorrをどうやって使うか、教えてください。
0499デフォルトの名無しさん
2008/04/23(水) 23:15:42だから、これを一本の縦ベクトルにしてからぶち込んだらいい。
あとは自分で調べてね。
ここ基本だからね。
0500デフォルトの名無しさん
2008/04/24(木) 00:49:17ん?なんで cross correlation がひとつの値になるんだ?
語弊を恐れず書くと cross correlation は convolution みたいなもんなんだから、|N1| + |N2| -1 の長さになるだろう?
あと、2次元データなら2次元拡張 xcorr2 がある。
0501デフォルトの名無しさん
2008/04/25(金) 05:27:21octaveっていま一つ
0502デフォルトの名無しさん
2008/04/25(金) 07:11:58相互相関から勉強しよう
0503デフォルトの名無しさん
2008/04/25(金) 08:58:450504デフォルトの名無しさん
2008/04/25(金) 23:04:45アクチベーションできなくなって
PC移行時は問い合わせろと書いてあったので
米・日両方問い合わせるも反応ナッシングな俺はどうしたらいいですか。
Studentの2007年版デス。
0505デフォルトの名無しさん
2008/04/25(金) 23:50:13球の表面積を面積要素で表したいのですが。
0506デフォルトの名無しさん
2008/04/28(月) 20:05:28土日だからじゃないの?
もう返事きたでしょ?
0507デフォルトの名無しさん
2008/04/28(月) 20:20:57来ました
Machine IDの変更申請をしろとな
0508デフォルトの名無しさん
2008/04/29(火) 19:03:340509デフォルトの名無しさん
2008/05/01(木) 07:23:38A=atan(imag(B)./(real(B));
と位相応答を求めた後、群遅延を求めるにはどうしたらよいでしょうか?
上式を周波数で微分したらよいと思うのですが・・・
やり方がわかりません・・・
0510デフォルトの名無しさん
2008/05/01(木) 15:35:44友達がPCに詳しい自分にmatlabを使えるPCはどれがいいかと聞いてきたんですが、自分はこのソフトについて一切知らないのが現状です。
みなさんがmatlabを快適に使う環境とはどのようなものなのでしょうか?
よろしくお願いします
0511デフォルトの名無しさん
2008/05/01(木) 15:54:45matlabを快適に使うとなればメモリは8GBくらい欲しいし、となれば64bitLinuxをWoodcrestXeonで動かせばいいかな。
matlabだけならCPUはDualCore一個でいいんじゃない? ディスクはできればRAIDを組むとして、HPのProliant辺りでどうでしょ。
0512510
2008/05/01(木) 18:20:43メモリ4GBに64bitは自分のメインマシンですがそれでも足りないんですねw
すみません。言い方を間違えたようです。
とりあえずコスト10万ぐらいのレベルで考えたときどのような構成にすればよいでしょうか?
>>511さんのレスからするとメモリは多めでCPUはdual coreぐらいでも問題ないと。
ぜんぜん理解していなくて申し訳ないのですがmatlabは大容量のデータをいじることにポイントを絞り、それに伴うCPUがあればいい感じですか?
どうぞよろしくお願いします
0513デフォルトの名無しさん
2008/05/01(木) 21:49:180514デフォルトの名無しさん
2008/05/02(金) 11:03:03MATLABにコンパイラがあるのは本当。C++のコードに一度変換してコンパイルしている。
で、間違いのほうなんだけどある程度高速にはなるけどPureなC++でマシなコードを書いたほうが断然早い。
私の場合画像処理ライブラリ関係でお世話になったけど3割程度しか高速化しなかった。
ちなみにMATLAB7.1環境。
0515470
2008/05/02(金) 11:09:36私は研究室のノートPCに入れて使っているけどストレスを感じませんよ。
余程に型落ちなPC(1G以下のCPU)でもない限りOSの推奨スペック程度あれば基本的には大丈夫かと。
スペックはあるに越したことはないけど、必要かどうかは、何の研究をやるかによる
計算量が爆発するようなアルゴリズムが必要な分野でないなら気にしなくて良い。
0516matlab初心者
2008/05/02(金) 11:24:59既にあるプログラムを手探り状態で書き換えているのですが、
行き詰ってしまったので教えて下さい。
ボタンが2個とスライダーが1個あるフォーム(diologueform)を作りました。
そのフォームのmファイルは以下のとおりです。
function varargout = dialogueform(varargin)
・・・
省略
・・・
% Get default command line output from handles structure
varargout{1} = handles.output;
% The figure can be deleted now
delete(handles.figure1);
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
handles.output = get(hObject,'String'); % ← この行は自分で追加
guidata(hObject, handles);
uiresume(handles.figure1);
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
handles.output = get(hObject,'String'); % ← この行は自分で追加
guidata(hObject, handles);
uiresume(handles.figure1);
0517matlab初心者
2008/05/02(金) 11:25:26% --- 以下はスライダーについての処理
function slider1_CreateFcn(hObject, eventdata, handles)
usewhitebg = 1;
if usewhitebg
set(hObject,'BackgroundColor',[.9 .9 .9]);
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
% --- Executes on slider movement.
function slider1_Callback(hObject, eventdata, handles)
slider1 = get(hObject,'Value'); % ← この行は自分で追加
・・・
省略
・・・
そして、他の関数のmファイルで、
result = dialogueform;
とすれば、
resultに押したボタンの名前が保存されます。
しかし、どうすればslider1の値(スライダーの値)を
他の関数のmファイルで参照できるのかが、
わかりません。
わかりづらい、文章で申し訳ございませんが、
とても困っているので教えてください。
0518511
2008/05/02(金) 11:26:34メモリはあるに越したことはないけど何の計算をするか次第かな。
ってことで、普通にCore2duoのPCを(メモリとディスクをけちらずに)組めばいいんじゃね?
GPUをNVIDIAの8800GT辺りにしておいて、CUDAを使ったライブラリを使える可能性を視野に入れてもいいし。
0519デフォルトの名無しさん
2008/05/02(金) 11:47:46MATLABって、まだマルチCPUに完全に対応していなかったような気がするのだが、
どのバージョンから対応したのか教えてくれないか?
0520511
2008/05/02(金) 11:56:31matlab自身が対応しているかどうかが理由じゃないよ。
まぁ、Pen4でmatlab動かしてる間にデータの整理しようと思ったら結構かったるかったんでね。
0521デフォルトの名無しさん
2008/05/02(金) 12:05:291)slider1 をグローバル変数にするのが一番早いような木がする。
2)荒技だけど、handlesの構造体に変数を勝手に付け加えてそこに書き込むと言う手もある。
handles.slider1 = xxxx;
0522matlab初心者
2008/05/02(金) 12:28:59早速のご返答ありがとうございます!
複雑さを避けるために2)を試してみます。
0523517
2008/05/02(金) 12:54:41handles.slider1 = get(hObject,'Value');
としたのですが、他の関数のmファイルで、
handlesを参照する方法がわかりません。。。
たびたびすみませんが、ご教授下さい。
0524517
2008/05/02(金) 21:20:460525509
2008/05/07(水) 18:52:59位相特性を周波数で微分して、群遅延を求めたいのですが
「周波数で微分する」の部分をどう書けばいいのかわかりません
位相特性は求めることができているのですが・・・
どなたか助けてください
お願いします
0526デフォルトの名無しさん
2008/05/07(水) 21:51:360527デフォルトの名無しさん
2008/05/09(金) 00:24:39アップデートは無しだが、そこそこToolboxも付いてるし使えそうよ。
0528デフォルトの名無しさん
2008/05/09(金) 09:59:58052918
2008/05/10(土) 14:39:49まだ届いてないけど注文しますた。
社会人になってからも株のシミュレーションで使えるし迷わず購入
0530デフォルトの名無しさん
2008/05/10(土) 17:41:36OSがビスタなのですが、インストールできますでしょうか。
サイバネットのホームページを見ても分かりませんでした(探し方が甘いかもしれませんが)。
親切な方、教えてください。
0531デフォルトの名無しさん
2008/05/10(土) 18:25:330532デフォルトの名無しさん
2008/05/11(日) 00:45:16以下、僕の経験則だけど。
6.x はライセンスマネージャが Vista に対応していないのでインストールできない。
メインバージョンが 7 になって以降は問題なくインストールできてる。
従って、学生版でも R2006b なら問題なくインストールできると思われ。
余談だけど Vista で 6.x を動作させたい場合は
VMware や Virtual PC を wrapper にしてる。
0533デフォルトの名無しさん
2008/05/11(日) 14:49:17ご回答ありがとうございます。
すごく助かりました。
おかげさまで安心してPC購入できます。
ところで、別の研究室でVistaにver.6.5(R13)をインストールしようとしててできない奴がいます。
532さんが書かれた要因だったようですね。
その場合、532さんが書かれている方法をとるか、XP以前のOSが入っているPCにインストールすることになるかと思います。
そこでもう一度質問させていただきたいと思います。
恥ずかしながら、「VMware」や「Virtual PCをwrapper」の内容が分かりません。
その設定を使うことでVISTAでもver6.xを使うことは可能なのでしょうか。
その設定は素人が手を出さないほうが良い内容でしょうか。
もし手を出してよさそうなのであれば、どのあたりを調べれば使い方が習得できますでしょうか。
聞いてばかりですみませんがよろしくお願いします。
0534デフォルトの名無しさん
2008/05/11(日) 15:22:38>VMware や Virtual PC を wrapper にしてる。
速度はあんまり落ちないってこと?
0535532
2008/05/11(日) 15:39:42お役に立てて何より。
簡単に説明します。
VMware や Virtual PC は、Vista 上で別の OS を走らせるソフト、と考えて下さい。
以下、僕の踏んだ手順です。
1. Vista に Virtual PC をインストールする
2. その Virtual PC に Windows98 を導入する
3. その Windows98 に Matlab 6.x をインストール
4. めでたしめでたし。
Virtual PC は MS 謹製でフリー、動作はしっかりしてるけど速度は気持ち遅め。
VMware はこの手のソフトの始祖で歴史があり、様々な OS に対応してます。
各々使い方を知ってて損のないソフトなので、とりあえず触ってみるのがよいかも。
使用法に関して細かく説明しているサイトは山ほどあるので、ググってみて下さい。
ちなみに wrapper というのは、「ラップするもの」の意です。
Vista を 98 の皮でラップして、その環境下で 6.x を動作させるという文脈で
使ってます。good luck!
>>534
おそらく予想どおりの回答で申し訳ないけど、スペック次第。
上述のとおり VMware の方が速度的には勝っている模様だけど、
個人的には Virtual PC でもストレスなく使えてる。
まぁ試してみるのがよいよね。
0536デフォルトの名無しさん
2008/05/12(月) 01:11:170537デフォルトの名無しさん
2008/05/12(月) 20:57:57と報告。
0538デフォルトの名無しさん
2008/05/13(火) 04:39:49どうやって?
HP見ても学生個人が買わないといけないって書いてあるけど。
0539デフォルトの名無しさん
2008/05/13(火) 09:04:400540デフォルトの名無しさん
2008/05/13(火) 23:59:45OSのコマンドプロンプトから直接Matlabスクリプトは叩けないのでしょうか?
自分の調べた限りでは、みんなMatlabを立ち上げて、Matlabコマンドプロンプトからの
実行ですた。
CGIとかでWebからMatlabを動かせたらステキだと思ったので。
やっぱりMatlabを立ち上げないとムリなのでしょうか。
0541デフォルトの名無しさん
2008/05/14(水) 02:39:55matlab -r foo.m
0542デフォルトの名無しさん
2008/05/14(水) 16:56:380543デフォルトの名無しさん
2008/05/14(水) 18:18:090544デフォルトの名無しさん
2008/05/14(水) 20:19:57ありがとうございました!!
教えてもらったものを元に、いろいろやってみたら、できました!
0545デフォルトの名無しさん
2008/05/15(木) 21:14:21それは問題になると思うよ。
0546デフォルトの名無しさん
2008/05/17(土) 17:29:31どうすればいいのでしょうか?
0547デフォルトの名無しさん
2008/05/17(土) 18:12:44ファイル→エクスポート→ベクタを保持できるファイル形式(epsやemf)で保存
→おもむろにillustratorで開く
コマンドラインから画像を保存する場合はprint命令を使う
これでいいかい
0548デフォルトの名無しさん
2008/05/18(日) 10:49:36フォントとか座標軸とか、勝手に書き換えられるのではないか?
0549デフォルトの名無しさん
2008/05/18(日) 23:22:09どなたか勉強に良いサイトを教えていただけませんか?
0550549
2008/05/19(月) 23:26:55本家のサイトが意外によかったようです.
自己解決しました.
0551デフォルトの名無しさん
2008/05/20(火) 12:15:270552124
2008/05/21(水) 11:36:23matlabを開いた時に開かれるcurrent directoryの
初期フォルダを変更することって可能でしょうか?
わかる方いましたらよろしくお願いします。
0553デフォルトの名無しさん
2008/05/21(水) 13:01:07そのプロパティの作業フォルダを変えるとか。
もしくは startup.m を作って cd(foo); とか。
0554デフォルトの名無しさん
2008/05/21(水) 22:18:050555デフォルトの名無しさん
2008/05/22(木) 01:41:05google もまともに使えんのに matlab で何をするつもりなのか、答え給え。
ぼくぁいつもマジレスなんだ。
0556デフォルトの名無しさん
2008/05/22(木) 14:24:57a = [0 0 1 1 1 0 0 0 0 1 1 1];
とあったときに、3:4, 9:11 のように連続点を抜き出すのに楽な方法ってないですかね?
b = find(a); として b = [3 4 9 10 11]; の状態から 3:4, 9:11 と2つに分ける方法でも良い。
今はループ回しているんですが、matlab だし、何か楽な方法がないかなぁと。
ちなみに、この 3:4, 9:11 の表現は、
c =
[3 4;
9 11];
のようにしているのだけれど、別になんでもいいです。
0557デフォルトの名無しさん
2008/05/22(木) 17:36:53オーバーシュートや静定時間を求める関数ってありますか?
0558デフォルトの名無しさん
2008/05/22(木) 21:12:07aを、微分(差分)してみるといいかもしれない
0559デフォルトの名無しさん
2008/05/22(木) 23:42:58おぉおもしろいアイデアだ。
D = conv(a, [1 -1]);
starts = find(D == 1);
ends = find(D == -1) -1;
ind = [starts(:) ends(:)];
でいけました。うほっ。とんくそ。
0560デフォルトの名無しさん
2008/05/23(金) 22:01:47stepinfo
ただしR2006a以上のControl System Toolbox
0561デフォルトの名無しさん
2008/05/28(水) 20:12:10ありがとうございます。でもうちのじゃ使えなかったみたいです。
あきらめます。
0562デフォルトの名無しさん
2008/05/29(木) 19:44:51その後,mexを作って解決しましたが,MATLABには標準で,arrayfunやcellfunといった同様の関数があることが分かりましたので一応報告しておきます.
0563デフォルトの名無しさん
2008/05/30(金) 03:32:380564デフォルトの名無しさん
2008/05/30(金) 14:18:05Please imput value of x :
と表示させてxの値を入力させたいのです.
0565デフォルトの名無しさん
2008/05/30(金) 14:18:290566デフォルトの名無しさん
2008/05/30(金) 22:32:320567デフォルトの名無しさん
2008/06/01(日) 21:22:19マイナスが見えなくなるのですが
これってどうしたらいいのですか?
0568デフォルトの名無しさん
2008/06/03(火) 14:59:19でfncに'sin'とかは入れてsin(r)を計算できるのですが、
x^2などのxにrを入れて計算するのはどうすればいいですか。
0569デフォルトの名無しさん
2008/06/03(火) 17:23:50feval(@(x) x^2, r)
0570デフォルトの名無しさん
2008/06/04(水) 18:58:14fminimax()の変数が整数版みたいなやつが欲しいんです。
fminimax()の条件をいじって、変数を整数に縛ろうと思ったんですけど、
やり方もわかりませんし・・・
0571デフォルトの名無しさん
2008/06/04(水) 21:26:37たとえば、y=2xのグラフをxを1〜10まで0.1刻みで描いたとします。
そのとき、y=5のときのx値を知りたいわけです。
刻み幅が大きく合致する値がない場合はどうなるのでしょう?
0572デフォルトの名無しさん
2008/06/04(水) 21:40:04interp1dをつかったら?
0573デフォルトの名無しさん
2008/06/04(水) 23:27:43推定するしかねーだべが。
0574デフォルトの名無しさん
2008/06/05(木) 02:21:50できればURL張ってくださいorz
0575デフォルトの名無しさん
2008/06/05(木) 23:35:26特に toolbox とか数学的に難しいものもあるから、
それを実装できる知識を持っているが、
研究者やらずに matlab 開発しているとか良くわからない。
ph.d 持ちの人たちなのかな?
0576デフォルトの名無しさん
2008/06/06(金) 19:13:200577デフォルトの名無しさん
2008/06/07(土) 17:31:53「MATLAB ヘルプ」でぐぐれ
0578デフォルトの名無しさん
2008/06/13(金) 02:40:44「MATLAB ヘルプ」でぐぐれ
0579デフォルトの名無しさん
2008/06/13(金) 14:51:550580デフォルトの名無しさん
2008/06/16(月) 09:27:120581デフォルトの名無しさん
2008/06/16(月) 20:48:400582デフォルトの名無しさん
2008/06/25(水) 20:53:550583デフォルトの名無しさん
2008/06/26(木) 10:32:350584デフォルトの名無しさん
2008/06/26(木) 19:17:32お前は首くくれ
0585デフォルトの名無しさん
2008/06/26(木) 21:14:55できないと思う
0586デフォルトの名無しさん
2008/06/26(木) 22:06:29カレーはククレ
0587デフォルトの名無しさん
2008/06/27(金) 08:35:390588デフォルトの名無しさん
2008/07/01(火) 04:20:23x=[1 0 0 0 0];
y=convol(h,x)
subplot(4,1,1)
xa=1:7;
plot2d(xa,y,style=-2,rect=[0 0 8 2])
のプログラムを実行すると
plot2d: first and second arguments have incompatible dimensions
とエラーが出ます。
どう対処すればいいですか?誰か教えて下さい。
0589デフォルトの名無しさん
2008/07/01(火) 06:45:02plot2d(xa,y(1:length(x) ...
にしたら?
0590しっとり
2008/07/04(金) 17:42:43MATLABでLeonhardの軌跡ってどのように描けますか?教えて下さい。
0591デフォルトの名無しさん
2008/07/04(金) 18:01:39例えば100行100列のランダムな値をもつ行列から上位30点の要素を抽出するにはどうしたらいいでしょうか?
誰か教えてください
0592デフォルトの名無しさん
2008/07/04(金) 20:23:06b=create_set(a);
c=b(length(b)-29:end)
0593デフォルトの名無しさん
2008/07/05(土) 10:59:13素早い回答ありがとうございます
早速やってみます
0594デフォルトの名無しさん
2008/07/07(月) 04:26:21作り方・コードを教えて下さい お願いします。
フォルダの中に「PC」等の2文字が書かれたbmp画像がN枚ある
一枚一枚を任意の場所で左右にカットする(PとCが分かれるように自分で分ける線の位置を決める)
それぞれ○○○○○L.bmp ○○○○○R.bmpとリネームして同じフォルダに保存する
この作業をN回繰りかえし終了
図:http://www.dotup.org/uploda/www.dotup.org22131.jpg
0595デフォルトの名無しさん
2008/07/07(月) 18:25:14問題は、分割位置が固定されているのか、問題毎に違うのか…。
プログラムで分割位置を判別は簡単じゃないと思うけど
% Image Prosessing Toolboxがインストールされていて
% 画像ファイルはRGB形式の仮定で行きます
% 違う場合は若干書き換えてください
filename = { 'image1.png', 'image2.png' }; % ファイル名を書いたリスト
l=length(filename);
for i=1:1
I=imread( filename{i} ); % 画像の読み込み
I=rgb2gray(I); % 画像をグレースケールに変換
[m,n]=size(I);
sep=100; % 分割位置を指定
% 画像の保存領域を作成
IR=zeros(m,sep);
IL=zeros(m,n-sep);
% 画像を転写
IR = I(:,1:sep);
IL = I(:,sep:n);
% 書き出し
imwrite( IR, strcat([filename{i},'R.bmp']), 'bmp' );
imwrite( IL, strcat([filename{i},'L.bmp']), 'bmp' );
end
0596594
2008/07/08(火) 00:29:39ありがとうございます
>>問題は、分割位置が固定されているのか、問題毎に違うのか…。
画像ごとに違う位置で分割したいので分割位置を一枚一枚その度に自分で決めれるようにしたいのです
説明が分かりにくかったかもしれません、↓実際のファイル内はこのような感じです
http://www.dotup.org/uploda/www.dotup.org22827.jpg
これをそれぞれ「退」と「院」に分割して保存したいのです
しかし画像によって分ける位置が違うので手動で分割位置を決めれれば…と思っています
>>% Image Prosessing Toolboxがインストールされていて
>>% 画像ファイルはRGB形式の仮定で行きます
Image Prosessing Toolboxについて簡単に調べてみましたが
多分インストールされていると思います、MATLABのタイプ(?)は[R2007b]です。
画像ファイルはモノクロビットマップです
>>filename = { 'image1.png', 'image2.png' }; % ファイル名を書いたリスト
画像が1000枚近くあって名前もバラバラなのですが・・・全ての名前を書き出さずにできないでしょうか
cut.mと名付けこのまま実行してみたところ、このようなエラーが出ました。一応載せておきます
??? エラー ==> imread at 315
ファイル "image1.png" は存在しません
エラー ==> cut at 5
I=imread( filename{i} ); % 画像の読み込み
0597デフォルトの名無しさん
2008/07/08(火) 07:31:40そのまま実行するという暴挙に出てエラーが出ましたとか言ってしまう神経が以下略だぜ
0598596
2008/07/08(火) 13:26:40その通りですね…冷静に考えればなんと当たり前な…
image1.pngとimage2.pngを用意して実行したところ、今度はこのようなエラーが出てしまいました
??? エラー ==> rgb2gray>parse_inputs at 82
MAP must be a m x 3 array.
エラー ==> rgb2gray at 35
X = parse_inputs(varargin{:});
エラー ==> cut at 6
I=rgb2gray(I); % 画像をグレースケールに変換
0599595
2008/07/09(水) 16:16:09ここは初心者に対して伝統的に厳しいスレではないけれど、それを考えてもあなたのレベルはちょっと酷い。
私も大した事は言えた立場ではないけれどMatlabが可哀想なのでせめてもう少し勉強してあげて。
一応回答するけど、画像を一括指定したい場合は、知恵を絞りましょう。
指定したディレクトリにある画像をすべて取得するならこんな感じ
% 指定したディレクトリにあるファイルのファイル名をリストで取得
imgdir = 'sampleimages'; % 画像がおいてあるフォルダの名前
files = dir(imgdir); % 指定したフォルダのファイル名を取得する
filename = {}; % ファイル名を書いたリスト
% ディレクトリのファイルからファイル名を取得
for i=1:length(files)
if exist(imdir+files(i).name)
filename{i}=imdir+files(i).name;
end
end
バグがおこっている行はRGB画像をグレースケールに変換するものなので画像のフォーマットの問題。
該当行を
I=im2uint8(I); % 画像をバイト型からグレースケールに変換
とかに差し替えてやればよいと思う。
あとは画像の分割位置を手動で決定するにはGUI画面を作らないといけないね。
ここからが初心者には大変なんだろうけど、面倒くさいな…
0600デフォルトの名無しさん
2008/07/10(木) 13:22:44レポートの課題なり、研究のポイントなんだから、
そこまでここで教えてもらおうなんて思わないように。
0602デフォルトの名無しさん
2008/07/10(木) 14:20:33就職のためなら専門学校いけよ。
0603デフォルトの名無しさん
2008/07/10(木) 14:26:22教授を見ていれば分かるだろ
0605595
2008/07/11(金) 12:51:43あぷろだ初めて使うんだけどこれでいいのかな?
pass:1111
削除キー:1111
使い方
・samplesフォルダに全ての画像を移す
・imageselect.mをmatlabから起動
・開始ボタンを押した後、画像の分割位置をクリックで選択
見た目に良く分からないかもしれないけどちゃんと分割された画像が保存されています。
手抜き仕事なのでバグあったら頑張れ
0606デフォルトの名無しさん
2008/07/11(金) 21:26:56おまえさんのアホさに感動を覚える
0607605
2008/07/14(月) 13:46:22ってそういう意味じゃないか…
一応やっている分野の近い相手なので、何となく情が働きまして…
matlabのGUIプログラミングはVBなどと比べても決して難しい物ではないけれど、あのレベルで習得させてやらせるのは辛いしね
0608デフォルトの名無しさん
2008/07/15(火) 08:28:190609デフォルトの名無しさん
2008/07/15(火) 23:33:57誰か作ってないかなぁ
0610デフォルトの名無しさん
2008/07/16(水) 00:42:370611デフォルトの名無しさん
2008/07/16(水) 02:46:420612デフォルトの名無しさん
2008/07/16(水) 07:39:55それをつかってfilter(b,a,signal)って使うことのできる関数を
Cで作りたいわけ
0613デフォルトの名無しさん
2008/07/16(水) 10:06:300614デフォルトの名無しさん
2008/07/24(木) 05:49:41built-in 関数みてると大文字はおろか _ すら使ってないのがほとんどな気がするんだけど、そういうもん?
ちょっと、これじゃやりにくい。
0615デフォルトの名無しさん
2008/07/24(木) 06:52:25個人的には _ を使った関数名は自作関数というぐあいに区別しているけど。
0616デフォルトの名無しさん
2008/07/24(木) 18:29:52無名関数を引数としてその無名関数自体の引数の数を返す関数を作りたいのですが。
また,関数自体はまだオブジェクト化されていないのでしょうか?
その様なクラスも見当たらないですし。
0617デフォルトの名無しさん
2008/07/24(木) 21:09:470618デフォルトの名無しさん
2008/07/24(木) 21:44:37>引数の数はnarginだろ普通
それはある関数呼び出しに関する引数の数だろ。
http://phpspot.org/blog/archives/2008/04/javascript_65.html
これで分かるかな?
0619デフォルトの名無しさん
2008/07/24(木) 23:09:42matlab は数値演算はいいけど、そういう補助機能が弱いよな。
>関数自体はまだオブジェクト化されていないのでしょうか?
そんなことする気あるの?なんかで言ってた?
0620デフォルトの名無しさん
2008/07/25(金) 02:27:23最初に行列を格好良く計算できる機構と入れたのは良いけど、やっぱり後で条件分岐やループが必要だと入れたあたりから破綻が始まっている
そこからは無計画と言うしかない文法の拡張が行われている
比較的最初に気づくものでも
関数作りたかったら別にmファイルを作ってそこに書かないといけないとか
関数は最後にendで括っても括らなくても良いとか
何故か決して使いやすいとは言えない関数名がC言語風とか
行列計算の書式しか無かった頃だけ直感的で利点があった、何故かインデックスが1から始まるとか
正直、簡潔な書式の行列計算+強力なplot機能+インタプリタですぐ結果が見える使いやすさなのだと思う
本当は文法関係は言語の進化に合わせて再設計が必要な時に来ているのだと思う。もう無理だけど…。
>>614
mlint関数で文法チェックとかどうでしょう?
0621デフォルトの名無しさん
2008/07/26(土) 17:50:46ドラッグが終わってバーの位置が確定した時だけ処理を行うことはできないでしょうか?
バーが変化するごとにいちいち変化してると重いですorz
0622デフォルトの名無しさん
2008/07/29(火) 12:20:46アルゴリズムの問題だと思う。
ちょっと考え直したら?
0623MATLAB初心者
2008/07/30(水) 00:02:55下記のようなニュートン法でα(ステップサイズ)を
適応的に求めるプログラムを作りたいのですが、
一向に分かりません。FORTRAN77を今まで使っていましたが
私のいる会社では、今年からMATLABになってしまったのです。
申し訳ありませんがこの掲示板をごらんになっておられる皆様
ご教授御願いいたします。
x(k+1)=x(k)−αinv(H(x(k)))g(x(k))
g(x(k))はf(x(k))の1次微分
H(x(k))はf(x(k))の2次微分
0624デフォルトの名無しさん
2008/07/30(水) 02:42:36つーか、ほとんどmatlab関係なくね?
0625デフォルトの名無しさん
2008/07/30(水) 03:43:340626デフォルトの名無しさん
2008/07/30(水) 12:54:20教科書を読め
0627デフォルトの名無しさん
2008/07/30(水) 23:23:53のように小文字と _ を使っている人が多いようだけど、
なにか理由があるのかね?
なんとなくそういうスタイルのテキスト多いのかな?
http://datatool.com/downloads/matlab_style_guidelines.pdf
の人は変数名には lowerCamel を押しているようなんだけど。
#関数名は _ もなしの lowercase 押してるけど、これはないよな。よみづらい。
0628デフォルトの名無しさん
2008/07/30(水) 23:45:26matlab で日本語入力モードになる意味がわからないので、
止めたいのですが、何か手法はあるのでしょうか?
0629デフォルトの名無しさん
2008/07/31(木) 11:09:240630デフォルトの名無しさん
2008/07/31(木) 13:49:10空白をあらわすのにlower caseを使う人がアメリカ流の人には多いと思う
0631デフォルトの名無しさん
2008/07/31(木) 23:33:08途中で止めることができない(;_;)。
途中で止めることはできないのでしょうか?
コードは以下
[y, Fs] = wavread('test.wav');
sound(y, Fs);
0632デフォルトの名無しさん
2008/08/01(金) 05:27:56lower_case と lowerCamel どっちがいいかなぁ・・・
lower_case は古い流行な気がしないでもないんですよね。
UNIX というか GNU C コーディングスタイル的な。
0633デフォルトの名無しさん
2008/08/02(土) 07:11:06最初から止めたい位置がわかっているのなら、
マトリックスの部分指定。
とにかく止めたいのなら、CTRL+C
0634デフォルトの名無しさん
2008/08/02(土) 17:41:28JavaScriptなんかの場合は最初は自分で書いたライブラリは_で区切るなんて風習もあったけど
そのうちライブラリを自分で配る人達が出てきてそれが普及してからはlowerCamelとJavaScriptの言語の標準に従う様になった。
最初は遊びで書いた関数も、そのうち人に配る可能性が無いわけでもないし、MATLAB標準に黙って従うのが一応正しい姿勢となるのでは?
0635デフォルトの名無しさん
2008/08/02(土) 17:43:380636デフォルトの名無しさん
2008/08/03(日) 05:07:36でも、matlab 標準というと、例えば bankrupt company が
bkrptcmpny みたいなかんじじゃない?
これはひどいでしょ?実際は、ここまでひどくはないけど、
_ もなにもないし、まぁひどい。
>>635
ファイル名 == 関数名、だから windows では大文字小文字が区別つかない。
けど、pca という関数がある時に、Pca を作るようなセンスの人はいないだろぉと思うし、
このために、lowerCamel は絶対ダメ!っていうのはもったいない気がする。
0637デフォルトの名無しさん
2008/08/03(日) 05:18:56で、 toolbox 作っている人をみると、関数名は、
lower_case みたいに書いている人が多いので、そちらが標準かと思ったら、
ttp://www.mathworks.com/access/helpdesk/help/techdoc/matlab_prog/f4-39683.html
を見ると関数名が makeParabola みたいに lowerCamel になってたりするんだよね。
でも、やっぱりファイル名の問題で、lower_case にしようかと思ったとすると、
変数名も lower_case にしたくなってくるわけだけど、
ttp://www.mathworks.com/access/helpdesk/help/techdoc/ref/persistent.html
とかみると変数名は lowerCamel だったりするんだよね。
今、リンクないけど、lower_case な関数名、変数名を使っているマニュアル例もあった。
というわけで、matlab 標準がどっちつかずなもんで、むきーという状況。
0638デフォルトの名無しさん
2008/08/03(日) 05:29:17C も標準は、略称使いの _ もなしの lowercase と思っていいいと思うけど、
OpenCV とか OpenGL は lowerCamel を使っている。
個人的には lowerCamel を使いたいのだけれど、
ファイル名 == 関数名の所で悩んでいる。
関数名は lower_case のような形で書いて、変数名は lowerCamel
ってアリなセンスなのかな?
ところで、private 関数的なネスト関数の名前は最初に _ でも付けようか、
と思ったら matlab では変数、関数名の最初を _ にはできないのね。がっかり。
0639デフォルトの名無しさん
2008/08/05(火) 05:03:280640デフォルトの名無しさん
2008/08/05(火) 13:46:17で、個人的意見なのですが、基本的にはMATLABのユーザーは物理系の人で、プログラミングの専門家やほかの言語に詳しい人は少ないのでそういうリテラシは少し低めなのではないでしょうか?
OpenCV とか OpenGLとかはC++の文化を意識してああいう風になっているんでしょうねぇ
オブジェクト指向を基本的には出来ないとはいえ、一応matlabの関数名の文化は、Cからの影響なのを考えるとlowerCamelの記法は可なのではないでしょうか?
> ところで、private 関数的なネスト関数
Lispでは「高階関数」と呼んでいるのでこれに合わせると良いのでは?
0641デフォルトの名無しさん
2008/08/05(火) 21:59:29>lowerCamelの記法は可なのではないでしょうか?
やっぱり問題は関数名なんだよね
>Lispでは「高階関数」と呼んでいるので
高階関数ってラムダ関数ちゅうか関数ポインタを受け取ったり
返したりって関数でしょ?fminsearch みたいな。
ネスト関数ってのはこっちね。
ttp://www.mathworks.com/access/helpdesk/help/techdoc/matlab_prog/f4-39683.html
0642デフォルトの名無しさん
2008/08/06(水) 11:40:35それほど大きなパッケージを作るわけでもなかったら、
書法は気にしなくてもいいのでは、って思う。
おれはそのレベルのユーザー。
0643デフォルトの名無しさん
2008/08/07(木) 02:02:31のグラフを書きたいのですが、上記の式で
エラー: 一致していないか、予期せぬ括弧か大括弧です。
とでます。x,yの値は
x=-3:0.1:3;
y=-3:0.1:3;
このように設定しております。
どなたか教えてください。
0644デフォルトの名無しさん
2008/08/07(木) 02:35:460645デフォルトの名無しさん
2008/08/07(木) 12:05:48エクセルデータを読んでグラフにしたいのですが、ファイルネームが
ABC-01.xls
ABC-02.xls
.
.
.
ABC-09.xls
と続くので、forを使って
for I=1:9
data=xlsread('ABC-0'num2str(I)'.xls');
hold on
plot(data)
end
としたいんです。
でも2行目にどうやっても忠告がでてしまいます。
文法うんぬん以前に考え方自体が間違ってるのでしょうか?
0646デフォルトの名無しさん
2008/08/07(木) 12:28:00「こう書けるだろう」と勘で書いたところがあるでしょ?
そういうところが本当に正しいかどうかチェックしてけばいい。
help strings
0647デフォルトの名無しさん
2008/08/07(木) 12:55:00プログラム自体が始めてから数週間なのでグダグダです。
ありがとうございました
0648デフォルトの名無しさん
2008/08/07(木) 15:07:13あと少しだけ、知れば、サクサク作業できるようになると思う。
0649デフォルトの名無しさん
2008/08/07(木) 20:58:54JMatLinkというJAVAとMatlabをつなげるツールをインストールしたいのですが、
http://www.held-mueller.de/JMatLink/install.html
に書いてある通りにしても上手くいきません。
上のリンク先に書いてあるように,
c:\WINDOWSにJMatLink.dll をコピーし,
c:\JMatLinkでDos窓を開き、
%java TestGui
と打ち込んだのですが,
java.lang.NoClassDefFoundError
というエラーが出てテストウインドウが開きません.
OSはWindows XP, matlabのバージョンは7.3.0、
JAVAはjdk1.6.0_05を使用しています.
どなたか、JMatLinkを使用している方がいましたら、
何が悪いのか教えて頂けないでしょうか。
0650デフォルトの名無しさん
2008/08/07(木) 23:14:34既存のC++で作られたライブラリの関数をラップして
(要は、mdlOutputs内で既存の関数をコールする)、
C++ MEX S-functionを作ろうとしています。
Visual C++ 2005上で作成/ビルドして、*.mexw32を作っているのですが、
simulink上でこれを実行しようとすると、
「無効なMEX-ファイル*****; 指定されたモジュールが見つかりません。」
というメッセージが出ます。
サイバネットが出している、C-MEX-S-ファンクションチュートリアル
(http://www.cybernet.co.jp/matlab/library/library/file/T/TT034.pdf?id=TT034)
の、「5.1 既存Cコードの利用」に、
1. C MEX S-Function 内で外部関数のextern 宣言を行う。
2. コンパイル時に外部ファイルもコンパイルする
とあったので、1.のみ行って、なんとかビルドはできたのですが、まだ同じ
エラーメッセージが出ます。
やはり2.もしないといけないようなのですが、VC++で外部関数も一緒にコンパイルする
方法が、わかりません。
上記のマニュアルに書いてある方法は、Matlabコマンドラインからの
すごく単純な構成のもののコンパイルなので、今やろうとしている、
たくさんのヘッダファイルやらdllやらをリンクしているモジュールの
コンパイルは、とても難しそうです。
0651デフォルトの名無しさん
2008/08/07(木) 23:25:33>>646に書いてあるように help strings すれば
必要なことが書いてるよ。
MATLABはちょっとクセがあるから他の言語を知ってる人が
いろいろひっかかるポイントがあると思うけど
ヘルプはけっこうちゃんとしてると思うから
どんどんヘルプ読んでいけばすぐ覚えるよ。
0652デフォルトの名無しさん
2008/08/07(木) 23:34:38ezplotとかだと関数じたいを引数として渡してるよね。
無名関数が可能なのかは知らない(たぶん出来ない)。
0653デフォルトの名無しさん
2008/08/07(木) 23:50:550654デフォルトの名無しさん
2008/08/08(金) 01:53:14その引数の数を調べられないか?ってのが大事なんじゃろ。
で、matlabの引数って
function hoge(a,b,c)
と書いてあっても
hoge(a,b,c,d)
と呼べるっちゃよべるし、呼び出しの時点になるまでわからないのでは富田
0655デフォルトの名無しさん
2008/08/08(金) 03:24:53--help でも matlab 起動するし。
0656デフォルトの名無しさん
2008/08/08(金) 06:02:13>>652に答えてるのにお前が知ってたらなんなんだよ。。
だいたい呼び出しの時点の引数の数を呼び出す前に知る方法があるわけないし。
何言ってるのかわからんが。
>>616で書いてるのは定義にある引数の数だろ。だったらnargin。
0657デフォルトの名無しさん
2008/08/15(金) 05:55:31surfc(X,Y,Z)
で出る図を png で保存すると、
真っ黒画像が作られるのですが、
みなさんはきちんと保存できたりしますか?
ぐぐってもだれも surf がおかしいとか言っていないようで。
0658デフォルトの名無しさん
2008/08/15(金) 06:18:21各成分を一つずつ表示しようとしてます。edit1=>A(1,1), edit2=>A(1,2), edit3=>A(2,1)という
具合にです。
set(handles.edit1,'string',num2str(A(1,1)));
などとSet文を30個書くのは効率が悪いんで、簡潔に書く方法を探しています。とりあえずevalを
使えばいいのかと思い、
for i=1:30
if rem(i,2)==1
eval(['set(handles.edit' num2str(i) ',''string'','...
'num2str(A(' num2str(ceil(i/2)) ',1)));']);
else
eval(['set(handles.edit' num2str(i) ',''string'','...
'num2str(A(' num2str(2/i) ',2)));']);
end
end
としてみましたが、「evalのインデックスはpositive integerかlogicalでないといけない」みたいな
エラーが出てしまいます。何が悪いんでしょうか。あるいは、eval以外にもっと良い方法があれば
教えてもらえると助かります。
0659デフォルトの名無しさん
2008/08/15(金) 14:37:19その関数を実行して、中で一連の addpath をさせたいのです。
0660デフォルトの名無しさん
2008/08/15(金) 14:41:36とりあえず sprintf のほうが見やすそう。
0661デフォルトの名無しさん
2008/08/15(金) 15:55:16オプションを設定
0662デフォルトの名無しさん
2008/08/15(金) 15:56:25エラーの内容そのまま。
1行づつ、確認しろ。
0663658
2008/08/15(金) 16:53:11うおお、下から3行目の num2str(2/i) は num2str(i/2) とすべきでしたね。evalの性質の理解不足
とか以前の問題でしたorz あと、sprintfを提案してくれた人もありがとう。これからいろいろ試してみます。
0664デフォルトの名無しさん
2008/08/16(土) 03:08:34オプションって surf のオプション?どれ?
0665658
2008/08/16(土) 05:21:46>>658とは逆のケースで、30個のエディットテキストにユーザーが入力した値を、15*2サイズの
行列Aとして格納することを考えています。
guideでエディットテキストを配置すると、対応するm-ファイルにCallback関数が30個自動的に
生成されるので、それぞれの下部に各行列成分への格納文を書けばいいわけですが、やはり非効率的
なので、もっと良い方法を探しています。
この場合、これら30個の自動生成された関数宣言文を削除し、evalなりfevalなりを使って、30個の
関数を変数を使ってまとめて定義するような文を手で打ってもいいんでしょうか? 確かこの手の、
「guideを経由しないでm-ファイルに直打ち」はNGのケースがある、と何かの本で見たことがある
んですが。
あるいは、このような場合での常套手段が他にありましたら教えて下さい。
0666デフォルトの名無しさん
2008/08/17(日) 12:10:20スクリプトでいいならrunでできるけど
関数を呼ぶにははそれと組合せて
function handleを使うとかかな。
それかベタだけど
wd=cd(dir); func; cd(wd);
とか。
0667デフォルトの名無しさん
2008/08/17(日) 12:23:29addpath をしたいだけなので、
スクリプトにして、run で呼べばよさそうですね。ありがとう。
0668デフォルトの名無しさん
2008/08/17(日) 19:18:43何かいい方法がありますでしょうか?
max関数を2回使うことで、大域的な最大値は求まるのですが。。
局所的な最大値を求めるアイデアがどうしても出てきません。。
お願いします。
0669デフォルトの名無しさん
2008/08/17(日) 23:01:34大域的なmax値をNaNで置換して、複数回走らせる
あるいは
元データを微分する
0670デフォルトの名無しさん
2008/08/18(月) 07:09:50局所的な最大値って極大値でいいのか?
いずれにしても「ランダムな行列」がどういうものであるかと
何を「局所的な最大値」と定義するかが決まらないと
答えられないのでは?
0671668
2008/08/18(月) 11:29:38具体的に書くべきでした。
例えば、
1 4 6 8 4 6
4 5 1 9 0 7
4 0 9 4 1 6
4 7 5 9 0 2
とあった場合、3列目の9と4列目の2つの9、6列目の7が最大値(=極大値)
と考えたときです。
お願いします。
0672デフォルトの名無しさん
2008/08/18(月) 22:10:41データの形式としては(x, y)が座標、(R, G, B)が与えたい色として
x y R G B
0.1 -1.1 10 20 30
0.5 0.3 112 30 11
-2.4 3.2 3 15 205
のようにn*5(nは行数)のベクトルデータとなっています。
これを穴があってもいいから通常の画像のように可視化したいんです。
点ごとにプロットする色を変えたらいいのかと思ったんですがうまくいかなくて
0673デフォルトの名無しさん
2008/08/18(月) 22:58:01座標を例えば 1 - 128 に正規化して、I = zeros(128); 後は for ループで
x = data(n,1); y = data(n,2);
I(x,y,1) = data(n,3);
I(x,y,2) = data(n,4);
I(x,y,3) = data(n,5);
とでも格納しなおして imshow するとかそういう単純な話だろ?
>>671
matlab central れ。
0674デフォルトの名無しさん
2008/08/19(火) 04:39:11最適化を止めて次のことをさせたいような場合、どうしたらいいですか?
最適化にはNelder−Meadを使いたいので、Fminuncより
Fminsearchを使いたいです。
Fの値は定義上0より小さくなることはないので、一度0がでてからさらに
パラメター空間でサーチするのは単なる時間の無題です。
Fminsearchのコードがわかれば外にIF節をつけれてFの値が
0になったところで止めさせられるものの、どうしていいかわかりません。
0675デフォルトの名無しさん
2008/08/19(火) 07:27:11みたいなベクトルがあって、[1 2] のある位置を知るのに、
for ループを使わずにすむ方法ってありますか?
matlab ならありそうな気がするのですが
B = [0 1 0 0 0 0 0 0 1 0 0]
が返ってほしい。
0676672
2008/08/19(火) 20:22:10即レスありがとうございます
ちなみに正規化ってどうやったらいいんでしょうか
xの列でソート→代入、yの列でソート→代入じゃ効率悪すぎですよね
手早くやれる方法はありますか?
0677デフォルトの名無しさん
2008/08/19(火) 21:11:550678デフォルトの名無しさん
2008/08/19(火) 21:27:19宿題は自分でやれ
0679デフォルトの名無しさん
2008/08/20(水) 00:42:24randperm
>>676
ソート?なぜにソートが・・・・
low = [1 1];
high = [128 128];
[N, d] = size(data); % d == 5
mini = min(data(:,1:2), [], 1);
maxi = max(data(:,1:2), [], 1);
data(:, 1:2) = data(:,1:2) - repmat(mini, N, 1); % move min to 0
data(:, 1:2) = data(:,1:2) ./ repmat(maxi-mini, N, 1); % [0, 1]
data(:, 1:2) = data(:, 1:2) .* repmat(high-low, N, 1); % [0, high-low]
data(:, 1:2) = data(:, 1:2) + repmat(low, N, 1); % [low, high]
data(:, 1:2) = fix(data(:, 1:2)); % int
0680デフォルトの名無しさん
2008/08/20(水) 02:50:49本質的には、いかにしてCallBack関数をまとめて設定するか、ということだと思います。
0681668
2008/08/20(水) 14:53:04matlab centralにあるということでしょうか?
探してみましたが、わかりませんでした。。
もしよければどれか教えてもらえないでしょうか?
お願いします。
0682デフォルトの名無しさん
2008/08/20(水) 15:05:44extrema.m
0683668
2008/08/20(水) 23:06:13完全に見落としてました。。
これでいけそうです。
ありがとうございました!
0684デフォルトの名無しさん
2008/08/21(木) 10:04:172次関数(ax^2+bx+c)を入力にして、総あたりでa,b,cのパラメータを推定する、というようなことをやっています。
入力をf(x)として、-5<x<5の範囲を見てるのですが、コードは
error=inf;
for a=-10:1:10
for b=-10:1:10
for c=-10:1:10
for t=-5:0.1:5
e=(f(t)-(a*t*t+b*t+c))^2;
if (error>e);
error=e;
end
end
end
end
end
というような感じになってます。これをfor文を使わないでコロンを使った形式にできるものなのでしょうか?
よろしくお願いします。
0685デフォルトの名無しさん
2008/08/21(木) 10:07:19******
for文を使わないことはできますか?
2次関数(ax^2+bx+c)を入力にして、総あたりでa,b,cのパラメータを推定する、というようなことをやっています。
入力をf(x)として、-5<x<5の範囲を見てるのですが、コードは
error=inf;
for a=-10:1:10
for b=-10:1:10
for c=-10:1:10
for t=-5:0.1:5
e=(f(t)-(a*t*t+b*t+c))^2;
if (error>e);
error=e;
end
end
end
end
end
というような感じになってます。これをfor文を使わないでコロンを使った形式にできるものなのでしょうか?
よろしくお願いします。
0686デフォルトの名無しさん
2008/08/21(木) 10:10:21よろしくお願いします。
0687デフォルトの名無しさん
2008/08/21(木) 10:16:19で、あとは min で argmin うけとる。
0688684
2008/08/21(木) 16:35:55ご指摘いただいた方法でできました。
ありがとうございます。
0689デフォルトの名無しさん
2008/08/21(木) 21:09:03だったらrepmatじゃだめじゃね?
ってか俺も今
for a=1:10
for b=1:5
kotae(a,b)=a+b
end
end
って感じのやってるけど、これfor文じゃなくせるの?
0690デフォルトの名無しさん
2008/08/22(金) 00:13:06「500の最大の再帰呼出の制限達しました。制限を変更するには、・・・」
となって動きませんでした。
制限を2000あたりまで変更しても同じ結果で。3000くらいになるとMatlabが
強制終了してしまいました。
これ何か対処法ないでしょうか。。??
0691デフォルトの名無しさん
2008/08/22(金) 02:39:48つか、少しは自分でk
0692デフォルトの名無しさん
2008/08/22(金) 02:56:10なくせう。for 文使うとゲロのろいぞ matlab。
0693デフォルトの名無しさん
2008/08/22(金) 09:31:000694デフォルトの名無しさん
2008/08/22(金) 10:26:09kotaeって10x5のマトリックスになるだろ?
0695684
2008/08/22(金) 17:33:09meshgridというのを使うとてっとり早いです。
行列にして掛け算する、ということです。
687さんがおっしゃった通り、repmatを使ってもできます。
というか、repmatを使ってmeshgridが実装されてるようなイメージです。
0696MATLAB初心者
2008/08/23(土) 12:06:04MATLABをはじめたばかりの初心者なのですが、連番をつけるところで悩んでおります。
文字列の配列で0001、0002、..... 、9999のように整数で任意の桁数にしたいのですが
うまい方法はありませんでしょうか?
エクセルでやっていたときは、上記の場合であれば”000”という文字列と整数の値を結合し
左から4文字を切り出して使用しておりました。
MATLABでもエクセルでやっていたような力技でやるしかないのでしょうか?
もしご存知の方がおりましたら、ご教示いただけませんでしょうか?
よろしくお願いいたします。
0697MATLAB初心者
2008/08/23(土) 12:12:11上記のレスで左から切り出していたというのは誤りで、右から切り出しておりました。
0698デフォルトの名無しさん
2008/08/23(土) 14:51:58ttp://dl.cybernet.co.jp/matlab/support/manual/r13/toolbox/matlab/ref/?/matlab/support/manual/r13/toolbox/matlab/ref/sprintf.shtml
0699MATLAB初心者
2008/08/23(土) 15:46:04ありがとうございます。
大変申し訳ございません。私には、このページではsprintfでたとえば”1”を”00001”と定義する方法が理解できませんでした。
整数を5桁で表して、それを文字型にnum2strか何かで文字列に変換するようなことができるということでしょうか?
私の思い付きではstrcatをつかって696に書いたような力技で書く以外に方法がわかりません。
お手数をおかけしますが、ご教示いただいたページのどれを使用すればよいか教えていただけませんでしょうか?
0700デフォルトの名無しさん
2008/08/23(土) 16:25:44printf フォーマット
でぐぐればいろいろ解説があるよ。
C言語が元だけど自由度がかなり高いから覚えとくとよい
↓とりあえず解決策
str=sprintf('%05d',i)
0701MATLAB初心者
2008/08/23(土) 16:35:09取り合えずというか、そのものずばり私の欲しかった回答を書いていただいて、感謝の限りです。
お忙しい中、どうもありがとうございました。
これからも精進いたします。
0702675
2008/08/26(火) 03:23:35みたいなベクトルがあって、[1 2] のある位置を知るのに、
for ループを使わずにすむ方法ってありますか?
matlab ならありそうな気がするのですが
B = [0 1 0 0 0 0 0 0 1 0 0]
が返ってほしい。
0703デフォルトの名無しさん
2008/08/27(水) 10:05:550704デフォルトの名無しさん
2008/08/28(木) 08:09:50x=find(A==1);
y=find(A==2)-1;
z=intersect(x,y);
B=zeros(1,length(A));
B(z)=1;
もっと簡単なのきぼん
0705デフォルトの名無しさん
2008/08/28(木) 22:26:43((A(1:length(A)-1)+A(2:length(A))).*(A(1:length(A)-1)==1))==3
正の値で且つ後ろ一つは無視する前提
一般性があるかどうかは知らない
0706デフォルトの名無しさん
2008/08/28(木) 22:38:400707デフォルトの名無しさん
2008/08/29(金) 01:15:31レベル低いなあ。
こんなのすらすっと出てこないってことは
よっぽど効率悪いコード書いてるんだろうなお前ら。
0708デフォルトの名無しさん
2008/08/29(金) 01:40:140709デフォルトの名無しさん
2008/08/29(金) 01:46:06スマン
0710デフォルトの名無しさん
2008/08/29(金) 09:07:52勉強になるんだけどな。
0711デフォルトの名無しさん
2008/09/04(木) 13:25:51MATLAB上で画像処理をする際に
画像のある画素(座標)を保存して
さらにその保存した座標のx方向成分だけ読み出すには
どういったコマンドを入力すればいいんですか?
0712デフォルトの名無しさん
2008/09/04(木) 13:42:08まず入門サイトでも読んだ方がはやくね?ってかはやい
0713デフォルトの名無しさん
2008/09/04(木) 16:05:56それについて詳しく解説してある本を知っていたら
誰か紹介していただけないでしょうか。
よろしくお願いします
0714デフォルトの名無しさん
2008/09/08(月) 12:56:090715デフォルトの名無しさん
2008/09/08(月) 18:24:34例えば、
Data1 = 1;
Data2 = 2;
・
・
・
Data30 = 30;
と30個の変数を定義したいとき、for文を使って定義することは可能でしょうか?
0716デフォルトの名無しさん
2008/09/08(月) 23:43:57キーワードを英語でlookforするくらいはしようよ。
>>715
help eval
0717デフォルトの名無しさん
2008/09/09(火) 11:36:43matlabのエディットウィンドウで、文字の挿入ってどうやるんですか?
現状では入力してある行に文字を挿入すると後ろの文字が消えてしまい、
全文入力し直しになってしまうのです、これをwordなどみたいに
文字を挿入したら、文が自動で後ろに移動してくれるようにできないですか?
また、同様にスペースキーも文字間のスペースをあけてくれず
文字を消してしまうのですが?どうしたらいいですか?
OSは vinelinux4
matalab v7.0.1 SP1です
0718デフォルトの名無しさん
2008/09/09(火) 22:12:45キーボードのinsert
0719デフォルトの名無しさん
2008/09/10(水) 13:58:00ボタンを押すとシミュレーションが実行するようにしたんですが、
GUIなしでコマンドから直接実行した場合だと160秒くらいで終わるのに、
なぜかGUIからだと260秒もかかるんですが、
なんでこんなにかかると思いますか?
やってることはまったく変わらないですが・・・。
全然見当がつかん。
プロファイラを実行した状態で GUI 経由でシミュレーションを行って、
時間のかかっている箇所を割り出してから相談してもらった方がよいと思われ。
0721デフォルトの名無しさん
2008/09/11(木) 00:44:20アドバイスありがとう。
実はこういう経験あまりしてなかったんで、
プロファイラとか使ったことなかったんです。
ちょっと調べて割り出してみます。
0722初心者
2008/09/11(木) 01:43:15Cでいうポインタのような概念はMatlabにはないのでしょうか?
0723デフォルトの名無しさん
2008/09/11(木) 01:54:01ないはずだよ
wikipediaにも書いてある
まあ、google codeとかmatlab centralで検索すれば
自作のポインタ関数出て来ても可笑しくないけど
0724デフォルトの名無しさん
2008/09/11(木) 02:15:40デフォはポインタ
渡された変数を編集しようとした時点でコピーが始まる
0725デフォルトの名無しさん
2008/09/11(木) 06:15:09何をしたいのかをはっきりさせて
それをMATLABではどうやるのか、と考える方がいいよ。
他の言語のやり方をそのまま持って来ようとしても
そうは行かない場合は多い。MATLABに限らず。
0726デフォルトの名無しさん
2008/09/14(日) 02:33:41例えば
3,6,4,5,2
4,15,7,5,3
6,4,4,7,3
のような行列があってノイズで15だけ値が大きい場合には、
それを周りの数字に近い値に矯正(たしか平滑?)するにはどうすればいいですか?
自分が知ってるやり方だと、ノイズも含め全ての成分が平均化されてしまいます。
どうにかノイズ以外はそのままの値で、ノイズ部分だけを周りの値に馴染ませたいんです。
0727デフォルトの名無しさん
2008/09/14(日) 02:59:5015を適当に5とかにしたら「馴染んだ」ことになるの?
自分が何をやりたいかをまずは具体的にする。
君以外にそれがわかる人はここにはいないよ。
0728デフォルトの名無しさん
2008/09/14(日) 07:57:320729デフォルトの名無しさん
2008/09/14(日) 12:03:36if ノイズ
平滑
else
なにもしない
0730デフォルトの名無しさん
2008/09/15(月) 07:18:580731デフォルトの名無しさん
2008/09/15(月) 13:38:27新しいやり方を考えればいいだけ。
0732デフォルトの名無しさん
2008/09/17(水) 23:20:14Cのプログラム等に記載するための離散時間系のデジタル1次ローパスフィルタを作るためにMATLABでフィルタの係数を求めようとしています。
そのためのプログラムとして、サンプリングインターバル=6ms、フィルタ周波数=10Hzとして、
omega = 2 * pi * 10
T = 1 / omega
sys = tf(1, [T, 1])
[num, den] = tfdata(sys)
[numd, dend] = c2dm(num, den, 0.006)
として求めると、y[n] = 0.6859 * y[n-1] + (1 - 0.6859) * x[n]という式が求められます。
一方で、連続時間系の1次ローパスフィルタの伝達関数(サンプリングインターバル=6ms、フィルタ周波数=10Hz) G(s) = 1 / (1+Ts) を手計算でz変換を行い、離散系のローパスフィルタの式を求めると、(T = 1 / omega、omega = 2 * pi * 10)
y[n] = 1 / (1+omega*0.006) * y[n-1] + (1 - 1 / (1+omega*0.006)) * x[n]
となるため、値を代入すると、
y[n] = 0.7263 * y[n-1] + (1 – 0.7263) * x[n]
となり、先ほどMATLAB関数から求めた式と乖離が出てきてしまいました。
そこで、有識者の方々にお聞きしたいのは
1.そもそも上記のデジタル1次ローパスフィルタの作り方は間違っているのか?
2.c2dm コマンドの中身がよくわからないが、これは計算誤差が出るようなものなのか?
3.離散系に変換したシステムのボード線図を見て特性を確認したいのだが、その場合
も連続系と同じく
bode(numd, dend)
でよいのか?
長文となってしまい、見にくくて申し訳ありませんがどなたか有識者の方がいらっしゃればご教授ください。
0733デフォルトの名無しさん
2008/09/18(木) 14:54:340734デフォルトの名無しさん
2008/09/18(木) 22:11:28と言いますと・・・?
0735デフォルトの名無しさん
2008/09/18(木) 22:13:54間違いを探したいのなら、
他の数字の組み合わせにしてみて、計算してみるのはどうでしょう?
0736デフォルトの名無しさん
2008/09/18(木) 23:19:11すいません、だいぶ他の数字でもやってみたのですが・・・
基本的な結果としては、低周波(0.01Hz、1Hz)では値の乖離はほとんど見られないのですが、高周波になればなるほどどんどん値が離れていくということになっています・・・
なので、アナログからデジタルに変換するときの計算誤差なのではと思った次第なのですが・・・
MATLAB計算値 手計算値
0.01Hz 0.9996 0.9996
0.5Hz 0.9813 0.9815
5Hz 0.8282 0.8414
10Hz 0.6859 0.7260
どなたかご教授いただけると助かります
0737デフォルトの名無しさん
2008/09/18(木) 23:34:44サンプリングインターバルも変えてみたらどう?
0738デフォルトの名無しさん
2008/09/19(金) 00:13:17MATLAB計算値 手計算値
0.5Hz 12msec 0.9630 0.9637
2Hz 24msec 0.7396 0.7683
0.01Hz 480msec 0.9703 0.9707
10Hz 480msec 0.0000 0.0032
という感じで、サンプリングインターバルが大きくなる、もしくは周波数が大きくなると乖離がどんどん大きくなるといった傾向が見られます。
そこで離散系に直したときのボード線図を見て、連続系のそれとの特性の違いを見たいのですが、離散系に直したシステム
[numd, dend] = c2dm(num, den, 0.006)
bode(numd, dend)
という見方でよろしいのでしょうか?明らかに異なった波形が出てくるので、離散系の場合はボード線図を違う見方で見なければいけないのかなと予想しているのですが。。。
見方がわかりませんので、もしご存知でしたら教えてください。
0739デフォルトの名無しさん
2008/09/19(金) 00:33:01ttp://www.ikko.k.hosei.ac.jp/joomla1506/matlab-topmenu-33/17-matlab20070307.html
0740デフォルトの名無しさん
2008/09/23(火) 00:35:38stem3でつくったグラフを等高線のグラフにそのまま変えたいのですが、
どなたかわかる方いらっしゃいましたらお願いします。
0741デフォルトの名無しさん
2008/09/23(火) 02:50:240742デフォルトの名無しさん
2008/09/23(火) 11:49:33値がどのように分布しているか等高線の方がわかりやすいと思い
変えたいのですが。
0743デフォルトの名無しさん
2008/09/23(火) 15:11:34matlab 等高線
でぐぐれ
0744デフォルトの名無しさん
2008/09/30(火) 15:46:00ファイルguimain.m内で
handles.a=1;
guidata(hObject, handles);
とhandles.aを設定したとき
別のファイルgui2.m内で
handles.aを編集する方法はあるのでしょうか
function gui2(hObject,handles)
handles.a=2;
guidata(hObject, handles);
ではできませんよね?
0745デフォルトの名無しさん
2008/09/30(火) 16:32:46function out = gui2(handles)
handles.a=2;
out = handles;
として、呼び出し側でguidata(hObject, handles); することで解決しました。
0746t
2008/10/07(火) 19:46:19困っています。
0747デフォルトの名無しさん
2008/10/15(水) 20:23:010748デフォルトの名無しさん
2008/10/18(土) 10:33:41構造体使う必要がないならglobal宣言すれば簡単かと
0749デフォルトの名無しさん
2008/10/19(日) 22:46:09どうやったらよいのでしょうか?
試しに
----------------------
z = [
0 0.1 0.3 0.5 0.3 0;
0 0.3 0.5 0.3 0.3 0;
0 0.5 1.0 0.7 0.5 0;
0 0.3 0.5 0.3 0.3 0;
0 0.1 0.3 0.5 0.3 0
];
[x, y] = size(z);
surfc(x, y, z)
----------------------
としたのですが、うまくいきませんでした。
おそらく行列のプロットを理解していない
と思うのですが・・・。
非常に低レベルな質問で申し訳ありませんが、
よろしくお願いします。
0750デフォルトの名無しさん
2008/10/19(日) 23:52:000751749
2008/10/20(月) 00:01:45早速のご回答、ありがとうございます!
無事、3D plot をすることができました。
ありがとうございます!
0752デフォルトの名無しさん
2008/10/23(木) 17:54:34どうやって、変形して最終の形にするのか
見る方法ありませすか?
0753デフォルトの名無しさん
2008/10/23(木) 23:45:04mathematica?
0754デフォルトの名無しさん
2008/10/23(木) 23:47:52シンボリックマスツールズの
0755いかわ
2008/10/24(金) 15:35:48もしも、''がなく、"2008-09-23 02:30:00.1" というフォーマットならば、sscanf(%d-%d-%d %d:%d:%d); によって時間データを抽出できるのですが。。
0756デフォルトの名無しさん
2008/10/24(金) 20:06:56どうすればいいかわからなくなるのかなこういう人は・・。
0757デフォルトの名無しさん
2008/10/25(土) 04:01:54C で使ったことある人いない?
ttp://www.mathworks.com/access/helpdesk/help/toolbox/compiler/index.html?/access/helpdesk/help/toolbox/compiler/f2-972343.html
これの通りやってみて、C をコンパイルできるようにまでは持って
いったんだけど、実行すると
libmatrixInitialization: unhandled exception
と出る。なにが足りないんでしょうかね?
0758デフォルトの名無しさん
2008/10/25(土) 05:49:280759デフォルトの名無しさん
2008/10/25(土) 10:11:57回答にはなってないかもしれんけど、
おいらは、加えてBuilder for .NETを使ってMファイルを.NETコンポーネント化
してから、.NET系言語から、そのコンポーネント呼び出して使ってるよ。
0760デフォルトの名無しさん
2008/10/27(月) 15:42:45だけでメモリ不足になります
余分な変数消去や仮想メモリ等をいじってみましたが効果はありませんでした
これを解消するには結局メモリ増設しかないのでしょうか?
0761デフォルトの名無しさん
2008/10/27(月) 16:38:49メモリ増設しても無理じゃね?
100000*100000って、数値だけで10Gになるからアクセスすることさえ厄介になってくると思う。
メモリ量的には更に数倍になるわけで、オンメモリで処理するのはどうせ無理だし。
0762760
2008/10/27(月) 18:09:13ご回答ありがとうございます
低レベルな質問ですみませんでした
このような行列はMATLABではそもそも扱えない(普通は扱わない)と考えてよいのでしょうか?
株価のシミュレーションでforを使うより行列を使った方が早いため
あのような行列が処理できると助かったのですが
0763デフォルトの名無しさん
2008/10/28(火) 01:30:5110Gのメモリっていうといわゆるスーパーコンピューターの領域
0764デフォルトの名無しさん
2008/10/30(木) 04:26:55処理の進行状況を表示したいのですが、
改行を抑制する方法はありませんか?
0765デフォルトの名無しさん
2008/10/30(木) 21:20:25複素数の実部虚部それぞれ七桁で表示させたいのですが
zに複素数が入っていて
sprintf('%7f',z)
とすると実部だけが七桁で表示されてしまいます
どうしたらよいでしょうか?
0766デフォルトの名無しさん
2008/10/30(木) 22:41:170767デフォルトの名無しさん
2008/10/30(木) 23:07:490768デフォルトの名無しさん
2008/10/31(金) 00:06:48なんで今どうやってるのか書かないの?
0769デフォルトの名無しさん
2008/10/31(金) 14:35:01ありがとうございます
sprintf('%7f %+7f',real(z) imag(z)i)
のような感じでしょうか?
今試せる環境ではないのでiとかがどうなるのかよく分かりませんが・・・・・
0770デフォルトの名無しさん
2008/10/31(金) 19:10:461辺の長さが1の正三角形を上下に並べて出来る平行四辺形をプロットして、
それに含まれるかどうかの判定をしたいのですが、判定条件はどうしたらいいでしょうか。
N個の点を行列で与えて、図形に入っていれば赤、入っていなければ黒という風に
表示させたいのです。
よろしくお願いします
0771デフォルトの名無しさん
2008/10/31(金) 19:25:24+の位置が不適切だけどそれを直せばイケル
0772デフォルトの名無しさん
2008/11/01(土) 17:39:35すいませんまだ試せていないんですがこうすると実数値の場合に
3+0i
みたいな表示になっちゃいませんかね?
もっと簡単にできる方法ないですかね
0773デフォルトの名無しさん
2008/11/07(金) 14:26:53例えばデータシートが1000枚あって、各データシートからX,Y,Zの値を取り出して、
座標(X,Y,Z)をplot3でプロットします。これがこのシートの3次元での点(位置)になりますよね。
それを1000枚分やると3次元空間に点が1000点でき、動きの軌道のように繋がって表示されます(そういうデータなので)。
問題は次なのですが、数十点ほど動きの軌道からはみ出してプロットされた点(多分計測時のノイズ)が
存在します。なのでプロット点全体を平滑化したいのですが、三次元プロットした点をフィルタするのは
可能なんでしょうか。
よろしくお願いします
0774デフォルトの名無しさん
2008/11/07(金) 21:04:04成分ごとにやれば?
0775デフォルトの名無しさん
2008/11/08(土) 07:04:44フィルタしてからプロットするんでしょ?
0776デフォルトの名無しさん
2008/11/08(土) 09:03:51mlfMatrixPrint とか
mlfLength とかってどこに行ったの?
昔は matlab.h ってのがあったみたいなんだが、
R2007b だけど、ないんだよね。
matlab 内のビルトイン関数を C から直接呼び出せなくなったの?
0777デフォルトの名無しさん
2008/11/09(日) 14:40:02>>675の解決策ってありますか?
0778デフォルトの名無しさん
2008/11/10(月) 07:24:170779デフォルトの名無しさん
2008/11/10(月) 20:04:54250*350でフレーム数200のAVIの動画をRGBで格納するために
T=zeros(250,350,3,200)
としてみたのですが、メモリが足りませんと出てしまいました。
解決策がわかりません
ちなみにPCはXP Core(TM)2 Duo CPU メモリ2Gを使っています。
よろしくお願いします
0780デフォルトの名無しさん
2008/11/10(月) 22:36:17使わずに 作りたいのですが可能でしょうか。
基礎的な質問でしょうがよろしくお願いします。
0781デフォルトの名無しさん
2008/11/10(月) 23:00:26[A;A;B;B]だったらn*2行m列だと思うんですが。
0782780
2008/11/10(月) 23:08:49[A;A;A;B;B;B;C;C;C]という行列を作りたいのです。
0783デフォルトの名無しさん
2008/11/10(月) 23:58:44メモリが足りないのものはしょうがないのである。
本当に全部格納しなければいけないのか考えてみるのである
0784デフォルトの名無しさん
2008/11/11(火) 00:01:09つまり *3 でいいんだね?
X = [A;B;C] からA, B, C の分解は終わっているものとする。
Y = [repmat(A, 3, 1); repmat(B, 3, 1); repmat(C, 3, 1)]
0785780
2008/11/11(火) 00:57:46ありがとうございます。確かに直接記述すればそうなるんですが、
行列の行数が任意の数nであってもそのような行列が作れるか
、つまり各行ベクトルをn個並べてn^2行の行列を作れるかということが
分からないんです。
0786デフォルトの名無しさん
2008/11/11(火) 06:44:37X(1,:)
ってどうやんの?
0787デフォルトの名無しさん
2008/11/11(火) 10:22:08repmat(x, 1, length(x))
0789デフォルトの名無しさん
2008/11/11(火) 18:11:41と読み込んだ後
id とすると中身があるのは確認できるのですが
fprintf('filename','%s',id);
というふうにして書き込もうとするとFunction is not defined for 'cell' inputs.
というエラーがでてidをtxtに書き込むことができません。
textreadで読み込んだidをtxtに書き込むにはどのようにすればよいでしょうか?
よろしくお願いします。
0790デフォルトの名無しさん
2008/11/11(火) 21:31:48http://www.excite.co.jp/world/
0791789
2008/11/12(水) 16:00:23セルをtxtに書き込めるようにする方法が調べてみてもよく分かりません
もしよかったら教えてもらえませんか?
よろしくお願いします。
0792シン
2008/11/14(金) 12:57:46。できればfor文をつかった形式でお願いします。あと範囲は0<x<10です。
0793デフォルトの名無しさん
2008/11/14(金) 18:27:37説明書読め
0794デフォルトの名無しさん
2008/11/14(金) 21:16:11http://pc11.2ch.net/test/read.cgi/tech/1226576323/l50
スレからのマルチポスト
0795デフォルトの名無しさん
2008/11/15(土) 17:26:185個の点P(i)を適当に設定し、これらの点を順に線分で結んでできる多角形の図を作れ。ただし各点P(i)は*印で示すこと
最後の点P(5)を最初の点P(1)に結んでみよ。
のプログラムを作りたいんですけど、誰かわかる方教えてください。
0796デフォルトの名無しさん
2008/11/16(日) 12:12:10plot([1:10], lagrange(x, y));
>>795
line(x, y, '*');
宿題は宿題スレに頼めよ
0797デフォルトの名無しさん
2008/11/16(日) 13:49:260798770
2008/11/17(月) 07:40:280799デフォルトの名無しさん
2008/11/17(月) 11:33:58まはやMATLABですらねぇな
三角形の中に点があるかどうかは時計回り(または反時計回り)に
各辺を回ったときに常に辺から左側(または右側)に点があるかどうかでわかる
N角形〜閉曲線の場合でも一緒
0800デフォルトの名無しさん
2008/11/18(火) 19:50:56よろしくお願いします
0801デフォルトの名無しさん
2008/11/18(火) 22:09:270802800
2008/11/19(水) 15:32:160803デフォルトの名無しさん
2008/11/20(木) 14:09:32MATLAB5.0でフォルダ内のファイル全てに同じ処理を施すようにしたいのですが、
どのようにしたらいいでしょうか?
サンプルプログラムを書いていただけたらうれしいです。
0804デフォルトの名無しさん
2008/11/20(木) 14:58:260805デフォルトの名無しさん
2008/11/20(木) 17:45:43MATLABで近似曲線を描きたい場合、データがXとYの2軸のグラフでプロットされてるなら、
近似曲線用のコマンドがあるのでできます。しかし今回はXYZの三軸の要素があるデータをplot3コマンドで
グラフ化したものに近似曲線をひきたいと考えていて、方法をずっと考えていたのですが全く思い浮かびません。
どなたかアイデアがありませんか?
name=dir
-------
gnuplotを、Windows 2000のOctave Ver3.1.50 Winows で使いたい、どうすれば?
0807デフォルトの名無しさん
2008/11/22(土) 13:26:48常微分方程式の境界値問題用のbvp4cソルバや、偏微分方程式のpdeソルバは様々な微分方程式で汎用的に使えるものなのでしょうか。
実験系の研究室にも関わらず、実験結果を説明するための数値計算をやらなくてはいけないことになってしまったのですが、
自分でコードを作る技術がなく、既存のソルバで手早く計算できないものかと思っています。
情けない質問ですがよろしくお願いします。
これらのソルバを使う時に収束性や初期値の設定等にコツが必要でしたら、そのコツについても教えていただけませんしょうか。
「この本を読め!」でもうれしいです。
勉強用にこれ↓を買おうと思ってます。もっと良い本ってありますかね。
ttp://www.amazon.co.jp/MATLAB%E6%95%B0%E5%80%A4%E8%A7%A3%E6%9E%90-G-J-Borse/dp/427402380X
0808p
2008/11/23(日) 09:07:11質問です。
plotで線をつなげずにヒストグラムのように描くにはどうすればいいですか?
(データは600行ほどのテキストファイルで、それぞれの行に数値が入っています。
それをdlmreadで読み込んでplotしたら横の軸は600までで思い通りなのですが
それぞれのデータ点がつながってplotされてしまいました)
0809デフォルトの名無しさん
2008/11/23(日) 12:19:590810デフォルトの名無しさん
2008/11/24(月) 12:21:35古物商の免許を取って古本屋で、売れ残りかつ専門的な本を安値で買って
アマゾンで売るという商売で月にだいたい10万円、多いときで30万円
の商売している人がいるらしいよ。
>>807の紹介した本もそういう人が提供している可能性大だね。
ではではノシ
0811デフォルトの名無しさん
2008/11/24(月) 16:42:290812p
2008/11/24(月) 19:25:160813age
2008/11/26(水) 00:56:33を買いました。
mccを実行しようとしたところ、mccは用意されてなかったみたいです。
studentバージョンだからですか?
0814デフォルトの名無しさん
2008/11/28(金) 14:04:590815デフォルトの名無しさん
2008/11/29(土) 17:04:20MATLABだけ?それとも、Simulinkも?
まぁ、国産の軽〜高級車くらい見ておけばいいんでない?
0816デフォルトの名無しさん
2008/11/29(土) 22:52:250817デフォルトの名無しさん
2008/12/01(月) 19:50:280818デフォルトの名無しさん
2008/12/03(水) 13:38:54聞いてくれば?
0819デフォルトの名無しさん
2008/12/05(金) 22:31:49512MB×4のメモリから、2G×2のメモリに増設しました。
zerosでどれだけのサイズを確保できるかを試したんですが、増設しても変わりありませんでした・・・。
10000×10000のゼロ行列でメモリ不足に陥ります。
サイズ増やせると期待したのですが、こんなもんなんでしょうか。
問題の計算のほうも改善できませんでした。どこかおかしいところがあればアドバイスお願いします。
バージョンはR2006b、OSは32bitXPです。
0820デフォルトの名無しさん
2008/12/05(金) 23:17:47100Mそこそこだから確保は出来るはずだが、他にも巨大な変数があったら不明
メモリが断片化してる可能性もあるのでpackコマンドを使ってみる
それでも足りなければ↓に従い64bitOSを使うなどの対処を。
http://www.cybernet.co.jp/matlab/support/techkwdb/search_view.php?id=1628
0821デフォルトの名無しさん
2008/12/05(金) 23:47:44B、C、Dは0を除外
C A B
+) B A C
----------------------
D A B A
0822デフォルトの名無しさん
2008/12/06(土) 00:31:47800M だべ?
>>819
他のソフトも入れて (matlab 自体もいれて)、
32bit CPU && Windows なら 2GB の壁があるから、
そんなもんじゃねーがの。
0823820
2008/12/06(土) 14:35:28おおう
単純な計算ミスorz
仮想メモリもふやして一応matlabが2G使えるはずだけど800Mなら他の変数しだいか。
やっぱ64bitでやるとかコマンドラインモードでやるとかが必要かもねえ
0824デフォルトの名無しさん
2008/12/06(土) 15:21:17有難う御座います。
clearやって不要な変数などは一切消去して試した結果です。
因みにタスクマネージャーでmatlabのメモリ使用量みたら700M程度でした。
ウィンドウとか最小化すると200Mまで減ったりしますが、こんなもんでしょうか。。
やっぱり64ビット環境かぁ。。。
その場合、ゼロ行列ではどれだけのサイズが確保可能になるんでしょうか?
0825デフォルトの名無しさん
2008/12/06(土) 20:36:07例えば、行列Aのプロット結果のtitleに「plot of A」とか書きたいんだけど、数が多くて手入力では限界が・・・
0826デフォルトの名無しさん
2008/12/09(火) 00:28:040827デフォルトの名無しさん
2008/12/09(火) 03:06:40文字列から変数っつーか、式に eval で変換する、ほうが楽かも
0828825
2008/12/09(火) 21:52:58アドバイスありがとうございます。しかし私の説明が不十分でした。
私がやりたいことは、例えば、
func = [1 2 3]
plot(func)
で[1 2 3]がプロットされますが、そのタイトルに'func'を含めたいのです。
title(func)
ではfuncの中身、つまり[1 2 3]がタイトルに表示されてしまいます。
title('func')
だと、funcとは表示されますが、変数名自信(funcの部分)が変わる場合には自動で対応できません。
そこで、別変数(例えばfunc_name)に変数名を格納できれば
title(func_name)
とすることで、自動でタイトルを付けることが出来ると思ったのです。
そういう関数とかないかなと探しているのですが、なんだかなさそうな気配です・・・
0829デフォルトの名無しさん
2008/12/09(火) 22:41:47その例で変数名が変わったとき
plot(func)は対応できるの?
君自身、自分が何をやりたいかが
分かってないのではないか。
0830デフォルトの名無しさん
2008/12/09(火) 23:42:36だから、変数名を格納して、eval で展開すれば、というとるやんけ
0831デフォルトの名無しさん
2008/12/10(水) 03:25:58825が何やりたいかちゃんと説明できてないから予想だけど。
0832デフォルトの名無しさん
2008/12/10(水) 06:55:04その予想を書けよ。言われる前に書けよ。
0833デフォルトの名無しさん
2008/12/10(水) 23:04:31教えてあげるのが親切ってもんだよ。
0834825
2008/12/11(木) 00:09:46実はプログラミング自体にあまり慣れていないもので、上手く伝えることが出来ないみたいです。
アドバイスを元にもうちょっと試行錯誤してみようと思います。
>>829
そこは泥臭い手法を採ってまして・・・
あまりに下手なので説明は遠慮させていただきます。
泥臭くて良いのなら引数で渡せばいいじゃんとか言われるとそれまでなのですが、
機能として有りそうにも拘わらず見つけることが出来なかったため質問した次第です。
>>830
ありがとうございます。調べて試してみます。
>>831
説明が上手くなくて申し訳ないです。
0835デフォルトの名無しさん
2008/12/11(木) 01:48:56>機能として有りそうにも拘わらず見つけることが出来なかったため質問した次第です。
そんな機能必要ないから存在しないだけだから
0836デフォルトの名無しさん
2008/12/11(木) 01:57:53自分がやってることとやりたいことを全部書いてないだけだと思うよ。
>825
> 変数名を文字列に変換する
をしてくれるvarnameという関数が仮に存在したとしても
あなたの質問の例では意味がない。
func = [1 2 3];
plot(func)
title('func')
を
func = [1 2 3];
plot(func)
title(varname(func))
と書けても「手入力」の節約になってない。
plotとtitleの部分を関数にしたいということなら分かるけど。
help inputname
0837デフォルトの名無しさん
2008/12/11(木) 03:15:16funcnames = { 'func1', 'func2', 'func3' };
for i = 1:length(funcs)
eval(sprintf('plot(%s)', funcnames{i]));
title(funcnames{i]);
end
>>831
eval 使わないとなるとどうやるんだ?参考までに教えてくれ。
0838デフォルトの名無しさん
2008/12/11(木) 07:16:070839デフォルトの名無しさん
2008/12/11(木) 17:53:58>>836に書いてあるんだけど。
evalもいいけどデバッグしにくくなるし
よほどの理由がある時以外は使わない方がいいよ。
0840デフォルトの名無しさん
2008/12/12(金) 02:41:03書いてないよ
>varnameという関数が仮に存在したとして
0841デフォルトの名無しさん
2008/12/12(金) 02:59:310842デフォルトの名無しさん
2008/12/12(金) 07:44:47は?inputname は全然ちゃうやろ。help みたんかいな
0843デフォルトの名無しさん
2008/12/12(金) 07:57:51>>828で
func1 = [1 2 3];
func2 = [4 5 6];
plot(func1)
title('func1')
plot(func2)
title('func2')
とすると数が多くなったときにtitleを
いちいち書くのが手間だっていうんだから
plotfunc(func1)
plotfunc(func2)
function plotfunc(f)
plot(f)
title(inputname(1))
end
でしょ。
0844デフォルトの名無しさん
2008/12/12(金) 08:01:52plotfuncの中にfigure追加しないとだめですね。
もとの質問者がsubplotとか使ってるなら
そのへんは適当に。
0845デフォルトの名無しさん
2008/12/15(月) 18:02:33A=Cexp(Bcosφ)を知りたい時どうすればいいですか?
Bは定数で、未知のCとφが知りたいんです。
未知定数が2つで積っていうのがよくわかりません
0846デフォルトの名無しさん
2008/12/15(月) 18:20:25http://jfk.2ch.net/test/read.cgi/news4vip/1229319433/
世界フィギュア選手権で浅田真央が韓国を破り金賞に輝く
↓
韓国人が腹いせに2ちゃんねるを攻撃
↓
vipper今夜19:00 反撃凸 ←いまここ★
目標
http://www.dcinside.com/
Dcinside(ディーシーインサイド)は、韓国の電子掲示板サイトである。
デジタルカメラの情報を提供する専門サイトとして有名になりつつ、だんだん人が集まり韓国最大のコミュニティーサイトとなった。 韓国の2ちゃんねるともいえるサイト。
2004年に2ちゃんねるのサーバをDoS攻撃したことで有名。
0847デフォルトの名無しさん
2008/12/17(水) 18:08:04for文を使わないで書く方法はありますでしょうか?
for文をなるだけ使わないのがMATLABっと以前のレスで見たのですが、
何分プログラミング自体初めてでして。。
row_m = input('Enter m = ');
k0 = input('Enter 0 or 1 =');
switch k0
case 0
k1 = input('Enter k = ');
kk = k1*ones(1,row_m);
otherwise
kk = zeros(1,row_m)+input('Enter kmatrix = ');
end
K = kk(:,1);
for N = 2:row_m
K0 = [kk(:,N),-kk(:,N);-kk(:,N),kk(:,N)];
K1 = [K,zeros(N-1,1);zeros(1,N-1),zeros(1)];
K2 = [zeros(N-2),zeros(N-2,2);zeros(2,N-2),K0];
K = K1+K2;
end
ここはこうしたほうが良いなどなんでも結構ですのでご助言を頂けると幸いです。
0848デフォルトの名無しさん
2008/12/18(木) 00:06:06Nの代わりにまんま2:row_mを使え
0849デフォルトの名無しさん
2008/12/19(金) 03:19:52waveファイルをインポートするにはどうすればいいのでしょうか?
helpをみてもできません。
[y,Fs,Bits] = wavread('onsei1.wav');
と入力したら、
??? エラー ==> wavread at 67
ファイルを開けません
とでます。
誰か教えてください!
0850デフォルトの名無しさん
2008/12/19(金) 04:42:52X軸Y軸が逆になってしまいます。
contour(y,x,z)とすれば軸はあうのですが、いまいち納得いきません。
どうしてこうなるのでしょうか?
0851デフォルトの名無しさん
2008/12/20(土) 07:17:39どうしたらいいでしょうか?
もしくはbicubicで補間しつつ拡大縮小を少数精度の倍率を与えたときに正確に動作が
保証できるプログラムを組んだことのある方いらっしゃいませんか?
ソースをアップして欲しいのです・・・。修士論文が間に合わない・・。
0852デフォルトの名無しさん
2008/12/22(月) 12:44:18Y
2 5
の逆ってどうやるんでしたっけ?
0853デフォルトの名無しさん
2008/12/22(月) 12:49:22ファイルがそこにないんじゃない?
>>850
meshgrid を使ったと仮定して、
meshgrid の使い方間違ったんじゃない?
0854デフォルトの名無しさん
2008/12/24(水) 00:27:15X(Y)=1
0855デフォルトの名無しさん
2008/12/25(木) 13:57:23MATLABを使えるようになりたいんですが
基本的な使い方とか解説してあるいいサイトとかあったら教えていただけないでしょうか。
0856デフォルトの名無しさん
2008/12/25(木) 15:36:00後はMATLABのhelpでしょうか。
0858デフォルトの名無しさん
2008/12/28(日) 22:52:26Q&Aに書いてあったと思うのですが、今は生協で買えるんですねー
その場合は上記の郵送とか面倒な作業は必要ないんでしょうか。
0859デフォルトの名無しさん
2008/12/29(月) 23:57:12生協で学生証提示でオケ
0860デフォルトの名無しさん
2009/01/04(日) 02:36:50返事遅くなってすいません。
煩雑な手続きは無くなったんですね。ちょっと興味有ったので買ってみることにします。
ありがとうございました。
0861デフォルトの名無しさん
2009/01/06(火) 00:42:52家でもやろうかと思ってるんですが
0862デフォルトの名無しさん
2009/01/06(火) 00:54:09家でもやりたいのでscilabをだいようできるでしょうか?
0863デフォルトの名無しさん
2009/01/06(火) 01:35:49>Scilab の文法は MATLAB と良く似てはいるが, 細部には違いがある.
>Octave は, 基本的な言語仕様の点で MATLAB 互換となるように設計されており,
>Octave で作成したプログラムの多くは修正なしでそのまま MATLAB で実行可能である
>(MATLABの方が機能が豊富なので,逆は真でない).
0864デフォルトの名無しさん
2009/01/06(火) 03:08:02わかりやすくありがとうございます
0865デフォルトの名無しさん
2009/01/06(火) 13:51:440866デフォルトの名無しさん
2009/01/06(火) 15:34:35http://pc11.2ch.net/test/read.cgi/unix/1086016412/
Scilabを触ってみるスレ
http://science6.2ch.net/test/read.cgi/kikai/1068735555/
SCILAB&SCICOSについて教えてください
http://science6.2ch.net/test/read.cgi/sim/980480122/
どれも過疎化しているが…
freematスレは見当たらなかった。
0867MATRAB_Mathematica
2009/01/08(木) 21:47:19Seq = {-0.2266091476053614,0;[0.2155407618197651,-1.2670686037583443],0;
[-4.2551584226048398,0.5047757263881194],2;
[0.2331599353469357,0.0447459687134724],-2;
[6.6244572505007815,-18.389000853969371],4;
[-0.0567684937266291,0.1443950619899142],-4;-5.5119344180654508,5};
ScaleS = -0.5985483742581210;
ScaleD = -1.6707087396895259;
Family = 'Symlet';
0868デフォルトの名無しさん
2009/01/13(火) 16:23:57「mmreader」で読み込んでも走査線が分かれて表示されます。
インターレース動画は奇数偶数をいじって解除・表示できたのですが、
H.264やmp4コーデックでエンコードされた動画は上1/3が黒く表示され、
走査線がバラバラに表示されます。
H.264動画の走査線をどのように分解したらよいのか詳しくわかりません。
詳しい方がいらっしゃいましたらよろしくお願いします。
0869デフォルトの名無しさん
2009/01/16(金) 16:05:57ある画像から2値化を行い,1つの物体だけを取り出そうと考えています。
bwlabelを使ってラベル画像を作った後に,ラベル付けされた各物体の特徴量として面積と円形度を求め,ある範囲に入っている物体1つを取り出したいのですが,よくわかりません。
調べたところbwselectがあったのですが,これは画像をクリックする操作があるため出来れば避けたいと思っています。
わかる方がいましたらアドバイスを頂けないでしょうか?
よろしくお願いします
0870デフォルトの名無しさん
2009/01/26(月) 18:35:450〜1の間の乱数を128×128の行列に入れて、これをXと置いた後、
imshow(X,128)で濃淡レベル128のグレースケールで表示します。
これで、白〜黒の画像が表示されるのですが、これを白〜赤のように色をつけて出力したいです。
colormap(Red);imshow(X,128)
でできるかと思ったのですが、上手くいきません。どうすればよいか教えていただけないでしょうか。
0871デフォルトの名無しさん
2009/01/27(火) 10:49:11MATLABよく知らんから逆に聞くけど、colormap(Red)するとどう出力されるの?
もしかして、黒-灰-白が黒-赤-白になるとか? colormapの仕様をよく調べてみるといいんでない?
0872デフォルトの名無しさん
2009/01/27(火) 13:32:39Hotとかにしてみ
0873デフォルトの名無しさん
2009/01/27(火) 21:20:12このコードで正しいのか自信がもてません。
何方か、分かる方がいらっしゃいましたらご指摘願います
function I=highpass2(I,THV)
% ハイパスフィルタ
function I=hp2(I,THV)
I=double(I);
I2=fft2(I);
I3=abs(I2);
[m,n]=size(I);
for k=1:m;
for l=1:n;
if( I3(k,l)<THV )
I2(k,l)=0;
end
end
end
I = uint8(real(ifft2(I2)));
end
I = hp2(I,THV*1000);
end
0874873
2009/02/03(火) 20:31:01どうも上のコードで良かったみたいですので、高速化ver貼り付けておきます。
function I=highpass2(I,THV)
% ハイパスフィルタ
% THVは0〜255の間でお願いします(0〜10推奨)
function I=hp2(I,THV)
I=double(I);
I2=fft2(I);
[m,n]=size(I);
I2=I2.*double( im2bw( abs(I2)./(m*n*255), min(THV./255,1.0) ) );
I = uint8(real(ifft2(I2)));
end
[m,n,o]=size(I);
for i=1:o
I(:,:,1) = hp2(I(:,:,1),THV);
end
end
0875デフォルトの名無しさん
2009/02/05(木) 12:28:1032 bit版のmatlabがあるのですが、64bitカーネルのLinuxで動きますか?
0876デフォルトの名無しさん
2009/02/05(木) 13:13:250877デフォルトの名無しさん
2009/02/10(火) 07:48:30それぞれの系列をカラーでわけたくない場合はマーカで区別すると思うのですが、
データ数が5000だとどのマーカも潰れて見えません。
データ数100個飛ばしでマーカをつけるなど、そのような飛び飛びでマーカをつける方法はありますか?
0878デフォルトの名無しさん
2009/02/10(火) 11:47:31教えて頂けないでしょうか。
今、カラーバーの範囲を[a, b] (a < 0 < b) にして、
0 の色を白に指定したいのですが、苦労しています。
よろしくお願いします。
0879デフォルトの名無しさん
2009/02/14(土) 07:56:25このページの真ん中当たりにコッホ曲線のウェーブレット変換が書かれてあるのですが、
この上側の図に書かれてあるコッホ曲線はよく見かける三角形をたくさん合わせたものと全く違いますが、何を表しているのでしょうか?
下の図は3次元的な図になっていますが、それぞれ横、縦、手前の軸は何を表しているのでしょうか?
0880デフォルトの名無しさん
2009/02/22(日) 20:44:57変数を文字列化してテキストボックスとしてfigureに挿入しようと
思っているのですが,以下のようにやってもうまくいきません.
eval(['text(20,70,',num2str(k),',''FontSize'',16,''FontName'',''Century'');']);
基本的に([])内の'と,の使い方についてよく理解していません.
'〜',〜,'〜',〜,… のような順番で結合したい要素を配置して,
''内に更に'〜'のような表現がある場合''〜''に書き換える決まり?が
あるんじゃないかと勝手に解釈して上記のコマンド書きました.
非常にややこしい文になりましたが,そこらへんの事も含めて
ご教授いただきたいです.よろしくお願いします.
0881デフォルトの名無しさん
2009/02/23(月) 22:13:59俺の脳内MATLABで実行してみたら、こんな感じだと俺の妄想どおりになった
eval(['text(20,70,''',num2str(k),''',''FontSize'',16,''FontName'',''Century'');']);
>>''内に更に'〜'のような表現がある場合''〜''に書き換える
そうそうそんな感じ
http://dl.cybernet.co.jp/matlab/support/manual/r13/toolbox/matlab/ref/?/matlab/support/manual/r13/toolbox/matlab/ref/eval.shtml
0882880
2009/02/24(火) 00:16:41仰るとおりのコマンドでうまくいきました.
リンク先も一応見た事あるのですが,evalで長いコマンド括る方法が無かった物で…
おそらくevalで一括するよりも,先に文字列作るなりしたほうが良いのかも知れませんね.
ありがとうございました.
0883デフォルトの名無しさん
2009/02/25(水) 13:58:40こんな意味のプロットを
plot(1:18, [0.1:0.1:0.9 0.91:0.01:0.99].^2)
のような表示でプロットしたい(x 軸の点ごとの間隔を等間隔にしたい)のですが、
上のようにプロットすると、x 軸のラベルがもちろん、1,2,3,4 のようになってしまいます。
このラベルは [0.1:0.1:0.9 0.91:0.01:0.99] のままにしたいのですが、
どうようにすれば実現できるでしょうか?よろしくお願いします。
0884デフォルトの名無しさん
2009/03/01(日) 09:09:55plot(1:18, [0.1:0.1:0.9 0.91:0.01:0.99].^2)
でプロットしてからXTickLabelを変更すればいいんじゃない?
0885デフォルトの名無しさん
2009/03/04(水) 20:50:400886デフォルトの名無しさん
2009/03/04(水) 22:08:330887デフォルトの名無しさん
2009/03/06(金) 14:46:30たとえば、(z-0.99)/(z-0.58)みたいな伝達関数があって、
任意のzdをzに代入したい場合、つまり、zd=0.45+0.53jをzにいれるには
どうしたらできるでしょうか?
それとも、そもそもMatLabではできないですか?
0888デフォルトの名無しさん
2009/03/07(土) 01:41:31こんな↓単なる台数方程式的な話ではないんですよね。
z=0.45+0.53*j
x=(z-0.99)/(z-0.58)
0889デフォルトの名無しさん
2009/03/07(土) 10:47:17信号処理の質問を経済学の人が見てもしょうがないのにさ。
ちなみに filter だったと思う。
signal processing toolbox に一度ひととおり目をとおしておくとよいでしょう。
0890デフォルトの名無しさん
2009/03/11(水) 02:58:33方法が見つからなかったので、結局、代数方程式を新たに作って解決したのですが、
もし、tfで作った関数に当てはめることができれば、そういった手間を省けると
思って質問しました。
>>889
すいません。分野は機械工学のデジタル信号処理です。離散時間を扱ってます。
あと、
そういったツールボックスがあるのですね。勉強になりました。
0891デフォルトの名無しさん
2009/03/17(火) 22:46:36function [a,b] = func( c )
の様に引数を2つ以上返すとき、どうすれば2つとも受け取れるのでしょうか?
というより文法的に何か可能は方法があるのでしょうか?
0892デフォルトの名無しさん
2009/03/17(火) 22:57:06何の言語を使っているのか知らんが、その言語スレで聞いたら?
まぁ、構造体を作ってって処だろうけど。
0893abc
2009/03/18(水) 16:27:200894デフォルトの名無しさん
2009/03/18(水) 23:53:24mu(i) = mean(A(A(:,i) ~= 0, i));
end
いや、
mu = sum(A, 1) ./ sum(A ~= 0, 1)
こっちのほうがスマートかな
0895デフォルトの名無しさん
2009/03/19(木) 08:37:260896デフォルトの名無しさん
2009/03/19(木) 11:15:210897デフォルトの名無しさん
2009/03/19(木) 22:33:19logプロットの様な感じでlog以外の指定した関数で表示したいです。
0898デフォルトの名無しさん
2009/03/24(火) 06:48:410899デフォルトの名無しさん
2009/03/26(木) 18:11:110900デフォルトの名無しさん
2009/04/09(木) 12:34:21n×m行列から、任意の数の列をランダムに抜き出すプログラムはありますか?
宜しくお願いします。
0901デフォルトの名無しさん
2009/04/09(木) 12:43:090902デフォルトの名無しさん
2009/04/09(木) 12:48:50返事ありがとうございます。
具体的にはどんなプログラムですか?
0903デフォルトの名無しさん
2009/04/10(金) 09:37:13「具体的」も何も、一行二行で書ける程度の簡単なものです。
このような場合、礼儀として、まず自分が試したことを説明すべきでは?
Matlab をどの程度習得しているのか。何が出来て何が出来なかったのか。
都合よく答えだけ貰おうとする姿勢は物乞いのそれです。
0904デフォルトの名無しさん
2009/04/10(金) 11:06:114月に入ってからmatlabの勉強をし始め、書いてあるプログラムは
理解できるのですが、自分で組むことができません。
サーバーネットのサイトや本を参考にしようと探したのですが、
見つけることができず2chにきました。
ぜひ教えていただけませんか?
0905デフォルトの名無しさん
2009/04/10(金) 11:11:45サーバーネット→サイバーネット
0906デフォルトの名無しさん
2009/04/10(金) 12:53:54個人的に一番役に立つリソースは本家 mathworks のサイトだと思います。
そちらも参照して頑張ってください。
>>679 にもありますが、今回は randperm を使えばよいでしょう。
「任意の数の」列を抜き出す箇所はご自身で組んでみてください。
dat = [1 2 3; 4 5 6];
result = dat(:, randperm(size(dat, 2)));
0907デフォルトの名無しさん
2009/04/10(金) 13:03:34ありがとうございます。
randpermを使って組んでみようと思います。
0908デフォルトの名無しさん
2009/04/13(月) 12:18:17宿題投げるならこんな場所もあるぞ
http://www21.atwiki.jp/matlaber/
やってることはこのスレと大して変わらんが
0909student
2009/04/15(水) 20:42:57最近MATLAB2008b student version を購入した素人なのですが困っています。
「MATLAB環境であれば特に設定はいらず、非MATLAB環境であればMCRを
インストールすれば使えます。」
のような説明がされているプログラムを起動しようとしても
"Could't find the mclmcrrt79..."
のようなエラーが発生して起動できませんでした。
しょうがないので適切なMCRをインストールしたら起動できるように
なったのですが、どうしてMATLAB環境であるはずなのに
そのままで起動できないのでしょうか?
student versionだからでしょうか?
MATLAB環境用にしか作られていないプログラムも使いたいので、困っています。
m-fileを開くとMATLABは普通に動き出しているのでMATLAB自体は正常だと
思うんですが・・・
どなたかご教授くださりましたもう。
Win/Vista/Home Premium SP1
0910デフォルトの名無しさん
2009/04/16(木) 01:05:50「MATLAB環境であれば特に設定はいらず、非MATLAB環境であればMCRを
インストールすれば使えます。」ってそれらしく説明してても、
実は無条件に mclmcrrt79.dll を読みに行ってる駄目プログラムの可能性もあるよね。
0911デフォルトの名無しさん
2009/04/17(金) 06:11:30urlread('http://eow.alc.co.jp/love/UTF-8/')
としてwebの情報を取得しようとしているのですが、以前はできたのに突然できなくなってしまいました。
サーバーの方からアクセスを拒否しているのか、それとも私の方の設定が間違っているのかわかりません。
どなかた上記のコマンドを実行してwebの情報が獲得できるか確認していただけないでしょうか?
0912デフォルトの名無しさん
2009/04/17(金) 07:00:07アルクの仕様が変わったんだろ。
0913デフォルトの名無しさん
2009/04/17(金) 07:34:08ですかね?
そうするとプログラミング初めから書き直しですね・・・
0914デフォルトの名無しさん
2009/04/17(金) 12:01:40>>913
ヒント
そのサイトは HTTP_USER_AGENT を見て、
コンテンツの表示を制限している。
0915デフォルトの名無しさん
2009/04/17(金) 22:11:29プログラミングは書き直しじゃないと思うぞ。
逆はさておき、MATLABの話題じゃない希ガス。
0916デフォルトの名無しさん
2009/04/18(土) 06:36:15ありがと。ということは
java.lang.System.setProperty('http.agent','agent-name')
でUserAgentを変更すればいいんですね。
再度質問なのですが、UserAgent名を変更した後、どのようにUserAgentをデフォルトに戻すことができるのでしょうか?
0917916
2009/04/18(土) 06:50:12じゃできんかった・・・
0918デフォルトの名無しさん
2009/04/19(日) 01:25:09行列式をdetという関数で表示させることは出来ますか?
それとも全て具体的な数値出なければ出力してくれないのでしょうか
|a b c|
|d e f| ←このような感じの行列です
|1 2 3|
0919デフォルトの名無しさん
2009/04/19(日) 03:20:500920デフォルトの名無しさん
2009/04/19(日) 03:58:470921デフォルトの名無しさん
2009/04/19(日) 14:33:510922student
2009/04/21(火) 00:29:45そうか、確かに駄目プログラムという可能性もありますね。
実はある種の映像解析ソフトでありまして、ジャーナルNature Methodsに
載った論文で公開してるやつなんですが、
http://www.nature.com/nmeth/journal/v6/n4/extref/nmeth.1310-S12.zip
といきなりリンクはっていいのか知りませんがどなたかご興味があれば
試していただけたらなぁなんて、、
ここでこういうのはちょっと場違いですかね。。
ただ自分の環境(MATLAB student 2008b on Win Vista)だからダメなのかソフトが悪いのか
わからなくて。
ちなみに
MCRをインストールする前: "Could not find the mclmcrrt79..." というエラーが出て起動できない
MCRをインストールした後: 一応起動はできるが、動画ファイル(avi or wmv形式)を読み込もうとするといきなり終了してしまう
という状況で困っているんです。
まぁ、製作者に聞けって話ですがねぇ(英語でのコンタクトがちょっと面倒ですが‥)
0923デフォルトの名無しさん
2009/04/21(火) 00:52:500924デフォルトの名無しさん
2009/04/21(火) 01:48:02まぁ直リンの何がマズいかも知らなさそうな子だから大目に見てあげなよ。
>>922
このアプリケーション、Matlab 入ってる環境でも実行時にエラー出るね。
ソースを見ても MCR のラッパー呼びまくってるから、
MCR 必須ということで終了。
0925student
2009/04/21(火) 17:48:18直リン以後気を付けます。。
MATLAB2008bが必要とだけ説明があったんですが(それ以上のヴァージョンは不明)
結局はMCRが必要だなんて。。
でもってMCR入れたところで、起動はできても動画読み込めないし。。
ちゃんとしてほしいわぁ。
というかわざわざ試して、
そしてソースまで見てただいてありがとうございました。
優しい方もいるんだなぁとちょっと感動。
0926デフォルトの名無しさん
2009/04/22(水) 09:01:32ボットがDOSでもしかけんの?
0927デフォルトの名無しさん
2009/04/22(水) 23:28:15遅くなりましたが有難うございました
0928デフォルトの名無しさん
2009/04/23(木) 10:04:100929デフォルトの名無しさん
2009/04/24(金) 00:14:54どう見せたい(見たい)か、によるんでないの?
0930デフォルトの名無しさん
2009/04/24(金) 10:15:03figureで時間変化を追ってプロットしていくのに必要な関数などがわかりません。
ご教授お願います。
0931デフォルトの名無しさん
2009/04/24(金) 12:56:163次元ディスプレイなんてものが使えるわけじゃないんだろうから。
0932デフォルトの名無しさん
2009/04/25(土) 03:21:07こぴられたw
>>930
時間変化しない3次元のデータだったらプロットの仕方はわかる?
それがわかれば、あとは一定時間で区切って再描画コマ送りするなり、
それをアニメーションとして保存するなり、お好きなように
0933デフォルトの名無しさん
2009/04/25(土) 12:20:08受け取りたいのですが、方法が見つかりません。
もしかして、S-Functionではデータ型が混在するバスやベクトル信号は
受け付けられないのでしょうか?
もし受け付ける方法があるなら教えていただけないでしょうか?
よろしくお願いします。
0934デフォルトの名無しさん
2009/04/26(日) 00:42:40ポートをわけて渡さないとダメじゃないかなあ
0935デフォルトの名無しさん
2009/04/26(日) 21:49:55やはりそうですか・・・
データ型を取得するマクロがポート単位のものしかないですもんね・・・
複数データ型のバスを受け取らなくても良い方法を考えることにします。
ありがとうございました。
0936デフォルトの名無しさん
2009/04/27(月) 10:07:32その都度figureを立ち上げてコマ送りのように表示することはできたのですが、もう少しスマートにできないものでしょうか??
一定時間で区切りコマ送りする手法を教えていただきたいです。
0937デフォルトの名無しさん
2009/04/27(月) 10:21:12少しは情報を探したのか?
http://www.cybernet.co.jp/matlab/support/techkwdb/search_view.php?id=1303
0938デフォルトの名無しさん
2009/05/18(月) 01:03:00x(n+2)+a_1x(n+1)+a_0x(n)=0 ,
x(0)=x_0 , x(1)=x_1 , n=0,1,2,∙∙∙
の階x(k)=0,1,2,∙∙∙,t_fを求めるプログラミングを作成せよ。また、次のデータについて実行せよ。
a_0=0.3 . a_1=-1.5 , x(0)=1 , x(1)=2 , t_f=10
のプログラムが作れません。誰か教えてください!お願いします!!
0939デフォルトの名無しさん
2009/05/18(月) 20:26:05みなさんマトラボはいつ頃から勉強はじめました?
ぜひ教えてください
0940デフォルトの名無しさん
2009/05/18(月) 20:51:54初めて触れたのは学部4年前期の制御工学の授業
0941デフォルトの名無しさん
2009/05/18(月) 21:29:00大学2年から
0942デフォルトの名無しさん
2009/05/18(月) 21:32:26久々のレスが宿題かよ!
x(n+1)+a_1x(n)=0, X(0)=X_0
なら作れる?
>>939
おれも940と同じ
0943デフォルトの名無しさん
2009/05/19(火) 10:26:37院にいってから
0944デフォルトの名無しさん
2009/05/19(火) 18:42:03assignin関数でfunction 内の変数をWorkSpaceに置きたいんですけど、
その際に変数名を配列で指定するとエラーがでて出来ません。
何か良い方法はないですかね?
こんな感じで書いてます。
function hoge
str =[ test1 test2 ]
for i=1:2
assignin('base',str(1,i), 2); ←ここでエラー
end
よろしくお願いします。
0945デフォルトの名無しさん
2009/05/19(火) 19:21:181. エラーメッセージをしっかり読む
2. ブレークポイントを設定して、関数実行時の変数の中を見てみる
3. 文字配列とセル配列の違いと扱い方を体で覚える
function hoge
str = { 'test1' 'test2' };
for k = 1:length(str)
assignin('base', str{ks}, 1);
end
あと、matlab では i は虚数を意味する(i * i = -1)ので、
できるだけカウンタとしての使用は避けるべきなのだそうな。
標準的な関数群でも平気で i がカウンタとして使われているけれども。
0946デフォルトの名無しさん
2009/05/19(火) 19:22:46function hoge
str = { 'test1' 'test2' };
for k = 1:length(str)
assignin('base', str{k}, 1);
end
0947デフォルトの名無しさん
2009/05/19(火) 20:17:52素早く丁寧な返事をありがとうございます。
1と2に関しては実行しました。
エラー文は読んだのですが、不適切な文ですとしか出ず
str(1,i)を 'test1' におきかえると正しく動作したので、str(1.i)が
間違っているということはわかったのですが、そこから進まなくて・・・。
セル配列{}? と文字配列()の違いでエラーが出てたという事ですかね?
str(1,1)とコマンドラインに入れればtest1 が帰ってきたので、
eval(str(1,1))
などを入れてやれば解決するかなと考えたのですが、これでもうまくいかず・・・。
また、明日学校で試させてもらいます。ありがとうございました。
0948デフォルトの名無しさん
2009/05/19(火) 20:59:280949デフォルトの名無しさん
2009/05/19(火) 22:21:51お勧めされたので早速やってみました。
実は質問外なので省いたのですが、最初の
str = { 'test1' 'test2' };
を取ってくる際にimportdataを用いてエクセルファイルのヘッダを取得しているのですが、
その辺りの関数がOctaveにはないようですね。
ただ、上記の関数がOctave上で正しく動くことは確認できました。ありがとうございます。
明日学校でMATLAB上でも正しく動くか検証してみます。
0950デフォルトの名無しさん
2009/05/20(水) 01:22:36%f(x)=x^2-5
N0=100;
TOL=0.0000001;
XL=1;
XR=5;
i=1;
FXL=XL^2-5;
while (i<N0)
XM=(XL+XR)/2;
FXM=XM^2-5;
if (XM==0 | (XR-XL)/2<TOL)
disp(XM);
return;
end
i=i+1;
if (FXL*FXM>0)
XL=XM;
FXL=FXM;
else
XR=XM;
end
end
disp('解が得られない');
このプログラムを関数x^3-7x^2+14x-6で動かしたいんだけど、どこをどう書き換えればいいのかわからん
自分でやるといつもFXM=のところでエラーになる
教授から丸投げされて、もうお手上げ状態なんで誰かアドバイスください
0951デフォルトの名無しさん
2009/05/20(水) 19:28:56学校のPCからじゃ書き込めないから携帯からになるけど
7行目を
FXL = XL^3-7*XL^2+14*XL-6
11行目を
FXM = XM^3-7*XM^2+14*XM-6
にすればいいのでは?
0952デフォルトの名無しさん
2009/05/22(金) 07:52:56遅くなりましたがMATLABでも動作確認できました。
丁寧なアドバイスありがとうございます。
0953デフォルトの名無しさん
2009/05/23(土) 00:11:030954デフォルトの名無しさん
2009/05/28(木) 19:26:05データにフィルターをかけるとデータの最初の方が0に近い値になってしまうのですが、回避する方法はあるのでしょうか?
それとも、フィルターをかけた上で最初の方を切り取った方がいいのでしょうか。
使っているフィルターは3次のバターワースフィルタです。
0955デフォルトの名無しさん
2009/05/28(木) 19:28:190956デフォルトの名無しさん
2009/05/29(金) 23:22:21>最初の方が0に近い値になってしまう
これが何か問題になるの?
0957デフォルトの名無しさん
2009/06/01(月) 01:44:36xx = [];
i=0;
for t=0:dt:tf
i=i+1;
xx(:,i)=x;
xt = x;
for j=1:2
f = A*x + B*u;
d(:,j) = f*dt;
x = xt + d(:,j)*0.5;
end
x = xt + (d(:,1) + d(:,2))/2;
end
t=0:dt:tf;
どこか違うとこありますか?あったら教えてください。
0958デフォルトの名無しさん
2009/06/01(月) 02:07:00ホイン法
xx = [];
i=0;
for t=0:dt:tf
i=i+1;
xx(:,i)=x;
xt = x;
for j=1:2
f = A*x + B*u;
d(:,j) = f*dt;
x = xt + d(:,j);
end
x = xt + d(:,2);
end
t=0:dt:tf;
中点法
どこか違うとこありますか?あったら教えてください。
0959デフォルトの名無しさん
2009/06/01(月) 02:09:28中点法
xx = [];
i=0;
for t=0:dt:tf
i=i+1;
xx(:,i)=x;
xt = x;
for j=1:2
f = A*x + B*u;
d(:,j) = f*dt;
x = xt + d(:,j)*0.5;
end
x = xt + d(:,2);
end
t=0:dt:tf;
どこか違うとこありますか?あったら教えてください。
0960デフォルトの名無しさん
2009/06/02(火) 22:18:09中点法
xx = [];
i=0;
for t=0:dt:tf
i=i+1;
xx(:,i)=x;
xt = x;
for j=1:2
f = A*x + B*u;
d(:,j) = f*dt;
x = xt + d(:,j)*0.5;
end
x = xt + d(:,2);
end
t=0:dt:tf;
どこか違うとこありますか?あったら教えてください。
0961デフォルトの名無しさん
2009/06/02(火) 23:30:210962デフォルトの名無しさん
2009/06/07(日) 22:09:250963デフォルトの名無しさん
2009/06/08(月) 13:35:18○○行から××行の間の処理を繰り返したいのですが、
結構な行数なので見辛くなってしまいまして。。
ご存知の方がいましたら教えて頂けると幸いです。
0964デフォルトの名無しさん
2009/06/08(月) 18:30:23ついでに書くならmatlabはループが苦手
0965デフォルトの名無しさん
2009/06/08(月) 19:52:04やっぱりないですよね。。
ご回答有難うございました。
0966デフォルトの名無しさん
2009/06/11(木) 23:53:51他の形(丸や多角形)にできますかね?
プロパティをみるとpositionによる縦横長さを
弄る以外にはなさそうですが、何か手段はありますでしょうか?
0967デフォルトの名無しさん
2009/06/13(土) 03:17:222階積分して変位の時系列波形を求めたいのですが、
どのように組めばいいのかがわかりません。
サンプルプログラムが載っていると
順を追えて理解がしやすいのですが、
何か参考となる本や文献があれば教えて頂きたいです。
0968デフォルトの名無しさん
2009/06/20(土) 15:31:18データ数8までは成功するのにどうしてか16以上になるとできません。
XXには既に並び替えたデータが入っています。
処理された結果がYです。
phase=log2(N);
for m=1:phase
W=exp(-i*2*pi/(2^m));
for n=1:N/2^m
for k=1:2^(m-1)
K=k+2^m*(n-1);
Y(K)=XX(K)+W^(k-1)*XX(K+2^(m-1));
Y(K+2^(m-1))=XX(K)-W^(k-1)*XX(K+2^(m-1));
end
end
XX=Y;
end
0969デフォルトの名無しさん
2009/06/28(日) 20:18:52matlabでImageJと同等のリニアスケールのトゥルーカラー画像を表示させたいのですが、うまくいきません。
matlabでは明度がはっきりしない画像となってしまいます。
何か良い方法があれば教えてください。
0970デフォルトの名無しさん
2009/07/05(日) 07:03:38元の画像よりも小さくなってしまいます。。
元のピクセルサイズを壊さずに保存できる方法を、
もしご存知の方がいたら教えてくださいm(_ _)m
0971デフォルトの名無しさん
2009/07/05(日) 10:36:28imwrite(X, 'test.png');
のようにして解決しました。
0972デフォルトの名無しさん
2009/07/06(月) 21:01:14拘束条件をどのように設定したらいいのか分かりません;
漠然とした質問で申し訳ないのですが、教えていただけたら幸いです。
0973デフォルトの名無しさん
2009/07/07(火) 02:35:370974デフォルトの名無しさん
2009/07/07(火) 17:15:29A=imread('画像のアドレス');
B=zeros(size(A,1),size(A,2),3);
for(a=1:1:3)
for(i=1:1:size(A,1))
for(j=1:1:size(A,2))
B(i,j,a)=A(i,j,a);
B(i,j,a)=B(i,j,a)/255;
end
end
imshow(B)
end
このプログラムだとimshowが三回実行されますが、
実行間隔が短いので最後の1回の結果しか確認できません。
それぞれの間に10秒ずつ時間を置きたい場合などはどうしたらよいですか?
0975デフォルトの名無しさん
2009/07/09(木) 19:46:10pause(n)
でn秒プログラムの実行を停止できました。
0976デフォルトの名無しさん
2009/07/24(金) 04:47:15連番をファイル名に付け様と思ったのですが、上手くいきません。
write = imread('lex.jpg');
for i = 1 : 10
imwrite(write, ['file_' i '.jpg'], 'JPEG');
end
使用したのは上記のプログラムですが、imwriteのところでjpegを書き出すためのファイルが開けない、
というエラーがでます。
これを改善するにはどうすればいいのでしょうか。
よろしければ誰かご教授のほどをお願いいたします。
0977デフォルトの名無しさん
2009/07/24(金) 13:09:360978デフォルトの名無しさん
2009/07/24(金) 13:10:500979デフォルトの名無しさん
2009/07/29(水) 12:48:54A = diag([1,1,1,0,0,0]);
eigs(A, 2, 'SM')
とすると
警告: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 0.000000e+000.
が出て、結果が NaN, NaN となります。
どう対処すればよいでしょうか?
なお、実際に使いたい対象はもっとでかい素行列で、
full したくない、という事情があります。
0980デフォルトの名無しさん
2009/07/31(金) 12:25:080981デフォルトの名無しさん
2009/08/01(土) 05:45:51実際、今は入力の行列に小さな摂動を加えて
singularではないようにして回避していますが、
どうにも筋が悪いように思い、質問した次第です。
レス数が950を超えています。1000を超えると書き込みができなくなります。