matlab
一枚努力的程序猿
磨刀不误砍柴工
展开
-
错误使用mex
matlab中输入:mex -setup提示:错误使用mex未找到支持的编译器或SDK。....原因:没有安装mex原创 2021-06-08 14:00:12 · 651 阅读 · 0 评论 -
matlab大小端模式转化十进制
小端模式:内存的低地址存数据的低位,内存的高地址存数据的高位。低低高高。 2,大端模式:内存的低位存数据的高位,内存的高地址存数据的低位。 低高高低使用matlab实现了小端模式的数据处理,并且将处理后的数据写入到excel表格中。处理前 处理后读取设备的值,按小段模式存储,需要分析其数据进行滤波处理读取通道1 通道2 通道3的数据将两个字节的数据 小端模式转化为十进制% 1,小端模式:内存的低地址存数据的低位,内存的高地址存数据的高位。低低高高。 2,大端模式:内存的低位存数.原创 2021-01-26 13:20:02 · 4003 阅读 · 0 评论 -
Matlab修改文件夹下所有的文件名 按照同一个方式修改
本例子实现了在文件夹下的所有.txt文件的文件名添加ABC,如readme.txt=>readmeABC.txt将本文件夹下所有的文件名读取出来,修改文件名后,重新放到另一个文件夹下% 将整个文件夹下的所有文件名加上相同的前缀或后缀% 选中的文件夹下修改txt文件名 使用movefile改变文件夹下所有文件的名字function AddABCToAllFile()clearclcclose all[filename1, pathnameread] = uigetfile('*.原创 2020-12-25 09:17:24 · 1127 阅读 · 0 评论 -
matlab画频谱图
给定数据和频率,画出其频率分布图,可以根据显示图调整%% 画出信号的频谱% data 需要处理的原始信号 fs:采样频率function fft_data = DrawFFT(data, fs)N=length(data);fft_data=fft(data);magY=abs(fft_data(1:N/2))*2/N;f=(0:N/2-1)'*fs/N;figure()plot(f,magY);h=stem(f, magY, 'fill','--');set(h,'MarkerE原创 2020-11-03 09:49:55 · 10352 阅读 · 4 评论 -
Caught MathWorks::System::FatalException,头停止点不在文件范围内/缺少)在常量表中/不在形参列表中
使用mex,在MATLAB编译时出现问题,导致程序崩溃,matlab退出。挨个排查函数,发现是由于malloc和free没有正确使用导致,其中有一个变量没有free,虽然写了free(p),定位free没有定义到,需要添加#include <stdlib.h>出现类似的问题一般都是由于内存原因导致或者指针导致,可以一点一点排查函数,看问题出现在哪个函数,再排查具体哪行代码。...原创 2020-09-08 15:42:13 · 1153 阅读 · 0 评论 -
matlab mex使用错误:undefined reference to `filter()‘collect2.exe: error: ld returned 1 exit status
项目场景:使用mex,在matlab中编辑文件,提示mex错误使用,代码查找没有问题,头文件也include进来。问题描述:错误使用 mexC:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:C:\Users\**.TAN\AppData\Local\Temp\mex_31995362517422_3608\main.obj: in function `原创 2020-08-28 11:40:31 · 2757 阅读 · 4 评论 -
mex matlab 与C语言的简单使用
使用mex在matlab中调用C语言的函数,简单记录一下1.在同一个文件夹下新建.txt,修改为.c,在vs中打开进行编译;在同一个文件夹下新建matlab的文件,调用C语言的主函数2.编辑C语言代码#include "mex.h"/******************************************************************************//** main function * @param[in] nlhs:number of原创 2020-08-28 09:26:37 · 1218 阅读 · 0 评论 -
matlab将大量数据写入一行,一行一行写入数据或者一列一列的写入数据
将matlab数据写入的文件中,将数据一行一行的写入,或者一列一列的写入在处理文件名时,比如src='data/src_data.txt';若要将文件名改为.csv格式,src(end-3:end)='.csv';就可以啦1.复制文件,将一个文件从一个文件夹下复制到另一个文件夹下,比如将同一个类型的文件放到一块wfilename=fullfile(src_dir, filename);copyfile(file_dir, wfilename); % src_fir为目标文件的路径,filen原创 2020-08-27 17:13:20 · 12310 阅读 · 0 评论 -
matlab读取文件夹的数据,根据文件名进行分类,加个分类后写入到不同文件夹中(.txt)
读取文件夹下的所有文件,根据文件名中包含的内容进行分类,将不同的分类写入到不同的文件夹下function Data = read_Data( )[filename, pathname] = uigetfile('*.*', '选择数据文件','MultiSelect', 'on'); %选择文件list = dir([pathname,'*.txt']);list_len = length(list);for i =1:list_len filename = list(i).name原创 2020-08-27 12:36:41 · 3306 阅读 · 0 评论 -
matlab由滤波的系数得到传输函数 设计带通滤波器 design fdatool设计IIR带通滤波器
看到一个带通滤波器的设计如下,开始研究是如何设计的代码:band_low = 0.3; band_high = 1.2; fs_origin = 25; hd_band = design(fdesign.bandpass('N,F3dB1,F3dB2',4,band_low,band_high,fs_origin),'butter'); %带通滤波器%fvtool(hd_band); % viewmeasure(hd_band) %Measure the freq原创 2020-08-19 18:01:42 · 10982 阅读 · 2 评论 -
采用查表法计算FFT
使用查表法计算快速傅里叶变换会快一些,本文采用了128点浮点(float)和定点(fix)型的处理,还有64点,包括MATLAB的程序和C语言的程序一一对应,与MATLAB自带的fft运算结果有对比。已归纳,方便下次直接使用。先上运行结果,采用统一一组数据sourcdata =[]; // 这里的数据比较大,因为做过处理MATLAB自带fft运行结果与查表法编写的运行结果对比:C语言对应程序运行结果(这里C语言采用了定点型,相对于matlab程序也做了处理)MATLAB 程序原创 2020-05-15 10:16:15 · 2136 阅读 · 3 评论 -
matlab转C语言遇到的问题
C语言单独对于一个带小数点的数,默认使用四舍五入 但是对于处理除法后的数,相除之后默认取整数。解决方法:整数/整数=整数 浮点数/整数=浮点数,这样round才会四舍五入原创 2020-05-14 18:33:08 · 964 阅读 · 0 评论 -
使用MATLAB将数据写入到文件中
使用MATLAB将数据写入到文件中writetex = 1; %设置一个标志位,当不需要写入文件时将其关掉if writetex == 1;fid = fopen('.\fft_data.txt','w'); %获取目标文件写入权限,文件路径自己设定endif writetex == 1 %写入操作 fprintf(fid,' %d,%d, %d,%d,%f,%f \n',L,J,k,p,Wncosp,Wnsinp); %将数据写入目标文件.按照打印的格式 endif writ原创 2020-05-09 16:56:08 · 1160 阅读 · 0 评论 -
决策树分类
发现使用决策树太方便了,之前不了解,吭呲吭呲的自己整了很多,matlab分分钟搞定,还清晰明了效果好;需要根据大量数据进行分类或者设置阈值时,使用决策树太方便了。源数据:提取了一些数据的特征值和类别,用来区分走路和不走了的状态,数据格式[feature1, feature2, feature3, feature4, feature6, sign], sign为结果代码:A=i...原创 2020-04-30 13:41:46 · 1431 阅读 · 7 评论 -
转 MATLAB画FFT,附MATLAB计算fft的函数
Version:1.0 StartHTML:000000215 EndHTML:000069168 StartFragment:000005330 EndFragment:000069076 StartSelection:000006409 EndSelection:000069072 SourceURL:http://blog.sina.com.cn/s/blog_4405fa340102xjy...转载 2020-03-12 17:40:16 · 1561 阅读 · 0 评论 -
matlab :打印不显示e,打开多个figure保存,打开文件框,与C语言代码不一致
1.直接打印数字,没有edisp(num2str(Fk,'%f'))在图上做标注: text(x(p),y(p),['(',num2str(x(p)),',',num2str(y(p)),')'],'color','r');2.将打开的多个figure保存jpg格式到同一个文件下for i=1:11print(i,'-djpeg',['D:\Users\Desktop\...原创 2019-11-06 16:55:38 · 1699 阅读 · 0 评论 -
matlab编写读取不规则txt文件,提取有效信息
需求:使用matlab读取txt文件的内容,并将其内容以一定的格式保存。源文件格式目标文件格式代码中使用打开文件读取的方式%% 读取数据,转换为提取xyz的对应值function ReadData() [filename, pathname] = uigetfile('*.*', '选择数据文件','MultiSelect', 'on'); %选择文件 ...原创 2019-10-29 11:03:36 · 3120 阅读 · 0 评论 -
离散傅里叶变换及matlab实现(按时间抽选(DIT)的基-2 FFT算法(库利-图基算法))
转,傅里叶变换,很好的解释很好的文章,可惜水平太差,还没有完全理解。快速傅里叶的matlab实现按时间抽选(DIT)的基-2 FFT算法(库利-图基算法)傅里叶要用到的nn个复数,不是随机找的,而是——把单位圆(圆心为原点、1为半径的圆)nn等分,取这nn个点(或点表示的向量)所表示的虚数,即分别以这nn个点的横坐标为实部、纵坐标为虚部,所构成的虚数。64点傅里叶变换的ma...原创 2019-09-11 13:18:36 · 4416 阅读 · 0 评论 -
FFT傅里叶变换对比
采用不同点数的FFT,效果完全不同,代码如下,FFT的实现见另一篇文章FFT需要输入时间序列和输出频域抽样点数相同。64点FFT指在0~采样率这段频谱采样64次。可以看到64根谱线。频谱精度=带宽/采样率 ,在频率轴上能得到的最小频率间隔=fs/N。%% 验证设计的FFT,理解分析clear allFs = 1000;T = 1/Fs;L = 1000;t = (0:L-1...原创 2019-09-09 14:36:46 · 1269 阅读 · 0 评论 -
差分方程--C语言--低通滤波器的学习
用matlab实现/* *@breif: low filter * *pSourceDataBuf[in] : source data to input to filter *u8SourceDataBufLen[in] : source data length *pDestDataBuf[out] : filtered data buffer ...原创 2019-09-12 13:19:53 · 1283 阅读 · 0 评论 -
matlab 验证编写离散低通滤波器是否正确
1.matlab中的打印 fprintf('the value of pi is%6.2f\n',pi)2.数字滤波器,与当前的输入,过去的输入和过去的输出有关系,为递归滤波器。只和现在的输入、过去的输入有关系,为非递归滤波器。3. 采用差分方程的方式编写了低通滤波器,代码如下,特意跟matlab自带的filter()函数做对比。%% Main函数function Main()...原创 2019-09-17 17:24:28 · 1664 阅读 · 0 评论 -
运动算法 一范数 二范数 敏感轴
1.注意点:设计状态判别算法和工作模式转换过程;需要有未佩戴状态监测算法,实现降低设备功耗的作用。可以将人体活动规律分为活跃、休息、静止3中状态,分别对应高采样频率、中低采样频率和低采样频率3中模式,对应不同的运动监测,降低功耗。2.单独利用单轴加速度数据很容易失去一部分的人体活动的特征,难以全面的表征人体活动的监测信息。可以考虑三个轴的加速度叠加,求取合加速度。3.plot 标记符...原创 2019-09-18 16:27:27 · 443 阅读 · 0 评论 -
计步算法 睡眠 心率 学习 PPG传感器(转))
计步算法在步数测试中,3个方向(竖直、前进、左右方向)的加速度信号由差不多相同的尖锐峰值和相对平坦的谷底组成。纵向看,关联性不是很明显,周期最明显的是竖直方向的加速度信号,其次是前进方向的加速度信号。正常步行,行走时左右脚跟或脚尖间的纵向距离称为步长,从一侧脚跟着地起到该侧脚跟再次着地为止所用的时间称为一个步行周期,一个步行周期所走的距离称为步幅。一般而言,身高越高,步长越大,相同身高,年...原创 2019-09-19 17:44:18 · 3488 阅读 · 0 评论 -
matlab画三维图、提取excel数据
filepath='E:\something\mess\Precipition NMC-V1.xlsx';[NUM1]=xlsread(filepath,1,'B3:D21');% [NUM2]=xlsread(filepath,1,'B25:D43');% [NUM3]=xlsread(filepath,1,'B47:D65');% [NUM4]=xlsread(filepath,1,'原创 2017-06-19 17:54:22 · 12834 阅读 · 0 评论