Scilabを触ってみるスレ

このエントリーをはてなブックマークに追加
153昨日からはじめた人:2009/01/12(月) 00:14:39 ID:+ATel+I1
ちょっと質問が正しくなかったので訂正します。

変数に計算結果の行列を入れたいのですが、それに条件を入れたいのです。

たとえば、xの範囲を-πからπまで101ポイント取るとして、
y=sin(x)として
ynの結果が0以下であったならynの値を強制的に0とする..

といった感じにしたいのです。

よろしくお願いします。

154名無しさん@3周年:2009/01/12(月) 00:17:14 ID:YmhqvdsU
y .* (y<0) みたいなので
155昨日からはじめた人:2009/01/12(月) 00:47:17 ID:+ATel+I1
できますた。

ありがとうございます。
156155:2009/01/12(月) 17:34:35 ID:+ATel+I1
ちなみにWindowsのユーザー名が2バイト文字だと起動しないようですね。

修正ができず、新たに1カウント作っちゃいましたよ。
157昨日からはじめた人:2009/01/12(月) 19:53:58 ID:+ATel+I1
度々すみません・・・

演習として、ガウシアン分布の3Dプロット図を作ろうとしましたが、
xとyをマトリクスで演算させる方法がわかりません...。



d=0.5
x=[-2:0.01:2]';
y=[-2:0.01:2]';

z=exp(-2*((x/d)^2+(y/d)^2));

clf()
plot3d(x,y,z,)

よろしくご指南ください m(__)m
158昨日からはじめた人:2009/01/12(月) 20:03:44 ID:+ATel+I1
追記

要するに、xとyの行列同士のマトリクスの計算結果をzに入れたいのです。
159名無しさん@3周年:2009/01/12(月) 23:26:20 ID:YmhqvdsU
http://kiwi.emse.fr/SCILAB/sci-bot/x330.htm
のExample 2-1

あとユーザー名2バイト文字にすんなよ
160昨日からはじめた人:2009/01/13(火) 00:37:49 ID:Gh1DJUVm
うーん、せっかくですがわかりません...
161名無しさん@3周年:2009/01/13(火) 20:03:49 ID:p85x2yXD
d=0.5
x=[-2:0.1:2];
y=[-2:0.1:2];


z=exp(-2*((x/d)^2+(y/d)^2));

clf()
plot3d(x,y,z,)

for iy=1:length(y)
for ix=1:length(x)
z(iy,ix)=exp(-2*((x(ix)/d)^2+(y(iy)/d)^2));
end
end

plot3d(x,y,z)
162名無しさん@3周年:2009/01/13(火) 20:32:39 ID:Gh1DJUVm
>161
ありがとうございます。
参考にさせて頂きます。

一応努力してみました。

clear

d=0.5;

x = linspace(-2,2,101);
y = linspace(-2,2,101);

[X,Y] = ndgrid(x,y);

deff("z=f(x,y)","z=exp(-2*(x.^2/d+y.^2/d ))");

Z=f(X,Y);

plot3d(x,y,Z)
163名無しさん@3周年:2009/01/13(火) 20:35:16 ID:Gh1DJUVm
>161

要約すると

clear

d=0.5
x=[-2:0.1:2];
y=[-2:0.1:2];

clf()

for iy=1:length(y)
for ix=1:length(x)
z(iy,ix)=exp(-2*((x(ix)/d)^2+(y(iy)/d)^2));
end
end

plot3d(x,y,z)


こうですね。
164名無しさん@3周年:2009/06/07(日) 18:15:58 ID:DOrg7rdg
申し訳ないのですが
Nクイーン問題をC言語ではなくScilabを使って解くやり方を教えてください。。。
165名無しさん@3周年:2009/08/04(火) 22:26:22 ID:ulGsLK4m
この3月に発刊されたこの本は、有用でしょうか?
Scilab入門 フリーソフトで始める数値シミュレーション 計測・制御シリーズ 大野修一 CQ出版 2009/03/15 \2,310
http://www.cqpub.co.jp/hanbai/books/40/40991.htm
166名無しさん@3周年:2009/11/19(木) 15:16:52 ID:KhxtSXVQ
おお。まさか機械工学板に立ってるとは。
167名無しさん@3周年:2009/11/23(月) 18:09:30 ID:rEG86hTV
>>166
昔は、電電板とかシミュレーション板がなかったんでなー
168名無しさん@3周年:2009/11/23(月) 18:18:24 ID:QGDvlfAU
>>167
そうだったんすか。古いスレですね
今期から授業で使う事になったんで9月頃から導入しました
先日何となくググったら2000年くらいのスレが見つかって、
そこからこのスレをようやく見つけたところです
169名無しさん@3周年:2009/11/23(月) 19:03:09 ID:rEG86hTV
>>168
SCILAB&SCICOSについて教えてください
http://science6.2ch.net/test/read.cgi/sim/980480122/

こっちのほうがにぎやかかも
170名無しさん@3周年:2009/11/23(月) 19:26:32 ID:QGDvlfAU
>>169
ありがとうございます。色々見て回ってみます。
まだ数理統計の簡単な計算をすこし始めたところで、
質問や手助けできる事もあまりないですが、大変参考になります。
171名無しさん@3周年:2009/11/24(火) 00:34:34 ID:Jo5X+w17
>>170
統計処理なら

統計解析フリーソフト R 【第3章】
http://science6.2ch.net/test/read.cgi/math/1224142396/

こっちもよろしくww
172名無しさん@3周年:2009/11/24(火) 07:23:27 ID:UC9w99JB
>>171
ありがとうございます!
さうは一人で持ちきれぬ
ヨイヨイ。
173名無しさん@3周年:2009/11/26(木) 23:33:18 ID:Q4dEOwxg
SIVPでAVIファイル作成するときavifileを使用すると
エラーが出てしまうのですが対応方法ないでしょうか。
174名無しさん@3周年:2010/01/20(水) 15:55:02 ID:sHka/2tm
MatlabからScilabに書き換えてるのですが,以下のエラーの解決策が分かる方がいましたら,教えてください.

<以下エラーの内容>
ii =

2.
!--error 144
与えられたオペランドのための不確定の操作です。

負荷をかけすぎる関数 %s_3_s 定義、または、チェックです。

at line 34 of function bilinear called by :
-d2(ii),d1(ii-1)-d2(ii-1),F1(ii-1),in1,st1,va1)
at line 413 of exec file called by :
exec(%fileToExec); disp(msprintf(gettext("Execution done.\n")));
while executing a callback

どうやら,whileループでfunctionを実行しようとしたら1回目は回るのですが,2回目のループで引っかかるようで,Matlabでは上手く回るので,functionやmainに間違いは無いと思います.

どなたか分かる方がいましたらよろしくお願いします.
175名無しさん@3周年:2010/01/20(水) 19:37:27 ID:IeUNBLEE
>>174
元のプログラムを載せないで、わかるやつがいたとしたら、そいつは悪魔と思わないのか?
176名無しさん@3周年:2010/01/21(木) 17:53:56 ID:HL/y7STt
過疎ってますね...。質問なんですが、小数点で数字を0.1ではなく0.10のように表示するにはどうすればいいんでしょうか?
177名無しさん@3周年:2010/01/22(金) 00:42:37 ID:iyxzOJ57
>>176
-->printf("%7.2f",0.1)
0.10
178名無しさん@3周年:2010/01/22(金) 16:11:49 ID:mZLwzyPr
>>175
すみません,プログラムの権利の問題上全て載せるわけにはいかないですが,
引っかかってるところを載せます.

abs_dd = abs(dd)

is = 2;

if (ds <= 0) then
is = 1;
end;

sn = (is+is-3);

select (st.ll)

Whileループの中の関数のプログラムの一部で,どうやらifの条件式のところで引っかかってるようです.
179名無しさん@3周年:2010/01/25(月) 17:45:49 ID:2Pb1QDme
>>177
遅れましたが、ありがとうございました。無事解決しました。
180名無しさん@3周年:2010/01/28(木) 01:34:21 ID:uh1fpJvM
>>178
解決したかい?

-->a = sqrt(-1)
a =

i

-->a <= 0
!--error 144
与えられたオペランドのための不確定の操作です。

負荷をかけすぎる関数 %s_3_s 定義、または、チェックです。



-->A = cell(2,2)
A =


!{} {} !
! !
!{} {} !

-->A <= 0
!--error 144
与えられたオペランドのための不確定の操作です。

負荷をかけすぎる関数 %ce_3_s 定義、または、チェックです。


とかあやしいいかも!
181名無しさん@3周年:2010/02/01(月) 22:08:42 ID:9NeAN59d
A=[1,2,3,4,5,6,7,8,9]
の行列があるとき、三つごとの平均を出すにはどうすればいい?
B1=2
B2=5
B3=8
みたいに出したい。
182名無しさん@3周年:2010/02/02(火) 01:14:02 ID:ElKSgX7+
>>181
エレガントにやってもいいが、
てっとりばやくやるのなら、 for ループで回すほうが速いかな
183名無しさん@3周年:2010/02/02(火) 09:02:48 ID:caO7N3gM
>>180
すみません遅くなりましたが,無事解決いたしました.
原因は,dsが複素数になっていたらしく,if文の条件式で判定できなかったようです.
real(ds)にすることで無事に解決できました.
ありがとうございました.
184名無しさん@3周年:2010/02/16(火) 21:57:58 ID:00d+Pikm
Scilab6はいつころ出るかな。。。 予想では1.5年後くらいか。。

http://www.scilab.org/products/scilab/roadmap
Major Scilab 6 Family Objectives

より、期待できるのは、次の改良点か。

・New kernel (interpretor, syntax tree, memory management ...)

Fortran風の言語仕様を排除するらしい。

・Generator of C code
Enable Scilab to generate C code from Scilab script for embedded systems

ScilabからC言語コードを吐き出してくれると、確かにうれしい。
185名無しさん@3周年:2010/02/16(火) 22:00:57 ID:00d+Pikm

と思ったら、ScilabからC言語の生成は既にあるのか。

http://atoms.scilab.org/toolboxes/scilab2c/
Scilab 2 C
Translate Scilab code into C code

使ったことないから、知らねえ。
186名無しさん@3周年:2010/02/19(金) 21:55:45 ID:Vvdju4CM
>>185
Scilab5.2.0winでScilab2Cを試してみたんだがエラーでCコードは生成できなかった
おまいらもやってみてよ
187名無しさん@3周年:2010/04/23(金) 17:06:17 ID:s2MT2wIy
高階関数って使えます?

f(x) = ax+b
g(x) = gx+b

とあるときに
f(g(x))を関数として出力したいんですけど
188186:2010/04/23(金) 17:08:51 ID:s2MT2wIy
できました有難うございました
189名無しさん@3周年:2010/04/23(金) 21:10:34 ID:asvZDCqK
>>187
horner関数で代入する。
190名無しさん@3周年:2010/04/24(土) 08:36:32 ID:EC7SSe3P
191名無しさん@3周年:2010/05/10(月) 21:41:26 ID:n+KRhqro
複数の変数に一度に代入する方法はないだろうか?


関数だったら
-------------------------
function [x,y] = myfunc( a )
x = a*2;
y = a*3;
endfunction

[m, n ]= myfunc(5)
-------------------------
でOKだけど、

-------------------------
[x, y] = [3, 8];
-------------------------
はエラーなる。
どうしてだろう?


ベクトルとして、一度に複数の変数に値をセットできると、すっきりするのだが。
192名無しさん@3周年:2010/05/12(水) 20:05:19 ID:pYRZIkNv
えーっと、ス、ス、スシラブ
193名無しさん@3周年:2010/05/14(金) 20:42:58 ID:FyjEHlLi
Scilabは、サイラブ と呼びます。 もしくはサイラボ。
194名無しさん@3周年:2010/06/10(木) 23:55:13 ID:qlf27Rz7
scilabの正当後継は scilabなのかscicoslabなのか、
どっちなんだ?
195名無しさん@3周年:2010/06/16(水) 18:29:23 ID:QKfCXuvT
誤差の2乗面積が最小になる関数をscilabで数値探索で求めたいのですが
やり方が分かりません。
196名無しさん@3周年:2010/06/28(月) 22:12:13 ID:2IYAUqM8
>>195
> 誤差の2乗面積が最小になる関数をscilabで数値探索で求めたいのですが
> やり方が分かりません。

具体的に、どんな問題?
197名無しさん@3周年:2010/06/29(火) 10:44:42 ID:1nyoA5U8
式を立てられないのはScilabの問題ではないよね。matlabでも同じだろう。
198名無しさん@3周年:2010/07/06(火) 10:20:35 ID:hwX2la0w
199名無しさん@3周年:2010/08/25(水) 23:44:41 ID:gk8Hpwnv
>>198

初期のVer5,0のころに比べ
ver5.3 は動作が速くなった気がする。
200名無しさん@3周年:2010/08/26(木) 01:03:38 ID:ngjmfnLG
Scilab 5.3.0とか、Windows7 Professionl 64bitにいれているんだけど、
64bit版も、32bit版もキーボードの入力を受け付けなくて、
なんにもできない状態なんですが、何が間違っていますか?


201名無しさん@3周年:2010/08/29(日) 00:29:41 ID:0vVoCyrE
>>200

とりあえず、当方 WinXP(32bit)で Scilab5.3 beta2 は、それなりに動いています。

まだ、動作不安定なところがあるけど、Ver5.0のころと比べると、確実に安定かつ速くなっている。
202名無しさん@3周年
>>200
scicoslab にしろ。
これで全部解決だ