k*****r 发帖数: 21039 | 1 the matlab replacement ?
i am now tired of those greedy companies' for-profit software. |
a*****s 发帖数: 2663 | 2 scilab is also pretty good. |
m*********g 发帖数: 273 | 3 I will recommend python. |
i*****f 发帖数: 578 | 4 Octave is very slow compared to matlab if our code is hard to get vertorized
. It
maybe because that octave does not have a Just-In-Time compiler (don't know
if there're third party JIT for octave)
But matlab scripting language sucks. that's another reason I hate matlab (
and don't like octave)
try numPy/sciPy if you can (does not have JIT either, but there's a 3-rd
party JIT called psyco only for x86 CPU).
【在 k*****r 的大作中提到】 : the matlab replacement ? : i am now tired of those greedy companies' for-profit software.
|
o**n 发帖数: 1249 | 5 scipy is weaker on plotting, though matlab is not that good either.
vertorized
know
【在 i*****f 的大作中提到】 : Octave is very slow compared to matlab if our code is hard to get vertorized : . It : maybe because that octave does not have a Just-In-Time compiler (don't know : if there're third party JIT for octave) : But matlab scripting language sucks. that's another reason I hate matlab ( : and don't like octave) : try numPy/sciPy if you can (does not have JIT either, but there's a 3-rd : party JIT called psyco only for x86 CPU).
|
b******l 发帖数: 1632 | 6 matlab language 那是相当的 decent 啊。
vertorized
know
【在 i*****f 的大作中提到】 : Octave is very slow compared to matlab if our code is hard to get vertorized : . It : maybe because that octave does not have a Just-In-Time compiler (don't know : if there're third party JIT for octave) : But matlab scripting language sucks. that's another reason I hate matlab ( : and don't like octave) : try numPy/sciPy if you can (does not have JIT either, but there's a 3-rd : party JIT called psyco only for x86 CPU).
|
i*****f 发帖数: 578 | 7 i think matplotlib is quite good (but my plots are usually ugly -___-)
【在 o**n 的大作中提到】 : scipy is weaker on plotting, though matlab is not that good either. : : vertorized : know
|
i*****f 发帖数: 578 | 8 An example:
if "j" is used to indicate complex numbers: 1+j. if you happened to use it
as an index in the same scope, then you are busted. There is even no warning
(don't know the situation now. haven't used matlab for a while)
Another example:
One can use "function" to define a subroutine. And you can choose to use
endfunction to end the definition (or choose not). And Matlab restricts you
from defining two separate functions in the same script file...
【在 b******l 的大作中提到】 : matlab language 那是相当的 decent 啊。 : : vertorized : know
|
r*******y 发帖数: 1081 | 9 matlab 里不会出现这样的问题吧. 如果你不给 i 赋予别的值, i 就是 sqrt(-1).
但是你要是赋予i 别的值, 那么i 就是新赋予的值. 这个时候 就不能用 i表示
sqrt(-1)了
warning
you
【在 i*****f 的大作中提到】 : An example: : if "j" is used to indicate complex numbers: 1+j. if you happened to use it : as an index in the same scope, then you are busted. There is even no warning : (don't know the situation now. haven't used matlab for a while) : Another example: : One can use "function" to define a subroutine. And you can choose to use : endfunction to end the definition (or choose not). And Matlab restricts you : from defining two separate functions in the same script file...
|
i*****f 发帖数: 578 | 10 Tried in Matlab shell (i has the same effect)
>> 1+j
ans =
1.0000 + 1.0000i
>> j=1
j =
1
>> 1+j
ans =
2
>> version
ans =
7.0.0.19920 (R14)
>>
【在 r*******y 的大作中提到】 : matlab 里不会出现这样的问题吧. 如果你不给 i 赋予别的值, i 就是 sqrt(-1). : 但是你要是赋予i 别的值, 那么i 就是新赋予的值. 这个时候 就不能用 i表示 : sqrt(-1)了 : : warning : you
|
|
|
b******l 发帖数: 1632 | 11 对呀,就是这样么。
另外,好的习惯是用 ii, jj 来表示 index。或者,更变态的,我经常用 idx_i,idx_
j,或者用 X.i, X.j 来表示。后者其实是很好的 matlab 编程习惯,可以避免当有多
个循环时,循环变量出问题。
【在 i*****f 的大作中提到】 : Tried in Matlab shell (i has the same effect) : >> 1+j : ans = : 1.0000 + 1.0000i : >> j=1 : j = : 1 : >> 1+j : ans = : 2
|
i*****f 发帖数: 578 | 12 I agree. I've been using ii,jj for many years after being biten by the
crappy i,j trap.
While we SHOULD do it in a better manner, there at least shouldn't be any
problem to use just "i" or "j". That's why I think it's a bad language,
along with some other examples.
idx_
【在 b******l 的大作中提到】 : 对呀,就是这样么。 : 另外,好的习惯是用 ii, jj 来表示 index。或者,更变态的,我经常用 idx_i,idx_ : j,或者用 X.i, X.j 来表示。后者其实是很好的 matlab 编程习惯,可以避免当有多 : 个循环时,循环变量出问题。
|
b******l 发帖数: 1632 | 13 这个是 fast prototyping 用的。代价吧。
有多
【在 i*****f 的大作中提到】 : I agree. I've been using ii,jj for many years after being biten by the : crappy i,j trap. : While we SHOULD do it in a better manner, there at least shouldn't be any : problem to use just "i" or "j". That's why I think it's a bad language, : along with some other examples. : : idx_
|
i*****f 发帖数: 578 | 14 All main stream scripting languages (dynamically typed) seems have not
problem like that.
E.g., in python you'll always have 1+1j (explicit) so even you do j=1 there'
s no such problem. I think it's just a poor design.
【在 b******l 的大作中提到】 : 这个是 fast prototyping 用的。代价吧。 : : 有多
|
b******l 发帖数: 1632 | 15 同意这个是糟糕的 design。mathwork 的解释是,用 complex 这个函数:
The complex function provides a useful substitute for expressions such as
a + i*b or a + j*b
in cases when the names "i" and "j" may be used for other variables。
there'
【在 i*****f 的大作中提到】 : All main stream scripting languages (dynamically typed) seems have not : problem like that. : E.g., in python you'll always have 1+1j (explicit) so even you do j=1 there' : s no such problem. I think it's just a poor design.
|
r****t 发帖数: 10904 | 16 Functions are not first-class objects. You cannot call such a language
decent.
Let alone the terrible OO syntax in Matlab. The only thing I like about
matlab is the toolboxes and the JIT. Either is not a necessity in most cases.
【在 b******l 的大作中提到】 : matlab language 那是相当的 decent 啊。 : : vertorized : know
|
i*****f 发帖数: 578 | 17 I agree with most parts. //hand
But I have several comments to add:
Toolbox: mostly I use communication toolbox. But I don't think it worths $
100 each copy, because it's not very useful (they could make it useful, but
they don't). There's even a C++ library which is better (easier and more
convenient) to use.
JIT: I think JIT is quite necessary, since there are programs which can
hardly be vectorized.
OO: OO in Matlab is TERRIBLE.
Functions: one function per script file...
cases.
【在 r****t 的大作中提到】 : Functions are not first-class objects. You cannot call such a language : decent. : Let alone the terrible OO syntax in Matlab. The only thing I like about : matlab is the toolboxes and the JIT. Either is not a necessity in most cases.
|
p***r 发帖数: 195 | 18 你老总行为艺术,好好的matlab不用,非要用octave
我都不敢用这东西,说不准出点错误还不够修复的呢,matlab应当各学校都有,你就不
要试这个了
【在 k*****r 的大作中提到】 : the matlab replacement ? : i am now tired of those greedy companies' for-profit software.
|
k*****r 发帖数: 21039 | 19 不就是D版的装不上吗。
【在 p***r 的大作中提到】 : 你老总行为艺术,好好的matlab不用,非要用octave : 我都不敢用这东西,说不准出点错误还不够修复的呢,matlab应当各学校都有,你就不 : 要试这个了
|