MATLAB常识

用了那么久的matlab,也该对些常识性的知识做下笔记了ヽ( ̄▽ ̄)و

matlab调用MySQL的坑(jdbc)

调用示例

dbname = ''; %后面url已经写了
username = 'root';
password = '123456';
driver = 'com.mysql.jdbc.Driver';
dburl = ['jdbc:mysql://localhost:3306/sound_recognize?serverTimezone=UTC']; 
% javaclasspath('D:\MATLAB\drivers\mysql-connector-java-8.0.16.jar');
conn = database(dbname, username, password, driver, dburl);
res = exec(conn, 'select * from db_test.table_test');
res = fetch(res);
res = res.Data

最后不加serverTimezone会报错"The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more than one time zone… …",这是因为MySQL时区对不上;但是加上前面dbname记得改为空,因为你url里已经有了;
或者你不想加serverTimezone,你还可以修改MySQL:

mysql -hlocalhost -uroot -p
show variables like '%time_zone%'
set global time_zone='+8:00';

PS:此处使用matlab2017b,mysql-connector-java-8.0.16.jar,亲测可用
PPS:matlab内部很多也是java实现的(包括数据库部分).so~,jdbc方式可能比odbc效率更高
之前遇到个问题:读取sql server中的数据,其中有一个字段长度是24w左右,matlab一直"正忙",只能强关.后来定义一个30w的数组,然后select另一个没那么长数据的表,成功,再回来select可以成功;否则,你就一直等它"正忙"吧(怀疑这是包在内存处理上的bug)

软件类型

1MATALB属于半开源软件,其中很多函数可以通过“open/edit/type+filename”命令进行编辑和查看源代码;但如min,fft,sum等函数,因为这些函数属于MATLAB的built-in-function(内置函数)是不公开的.有人说这些函数的算法是最优化的,保证较低的时间复杂度提高效率,所以,我感觉写一个算法优先考虑调用MATLAB自带函数,自带函数解决不了的情况下,再自己去写.
要确定函数是否开源可以通过which命令.

关于内置函数

1built-in 函数并非是用我们熟知的matlab语言写的,所以,即使给你了,你也未必能看懂。matlab 最初是在两个高效的底层矩阵计算包 LINPACK 和 EISPACK 上发展出来的,这两个包的升级版本叫做 LAPACK 。能写出这些包并且对其维护的人都是全球顶尖编程高手,他们不仅要求编程牛逼,还要精通线性代数和矩阵运算。所以,一般人根本不可能接触到matlab这些底层的东西。曾经有很多matlab爱好者向mathworks 询问并索要过built-in函数源代码,都被拒绝了,他们收到的回复是:

You can read and edit the source code for M-file functions that ship with
MATLAB; the only way to read and edit the built-in functions like FFT is to
get a job with The MathWorks. We don’t distribute the built-in source code
for MATLAB.


Steve Lord
slord@mathworks.com


  1. reference ↩︎ ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值