如何用matlab来实现离散数据的网格化

作者&投稿:穆顷 (若有异议请与网页底部的电邮联系)
MATLAB如何进行数据离散化~

-----data_seperate.m-----------------------------------------------------------
%%数据初始化

data='D:\work\数据离散化代码\discretization_data.xls';
k=4;
%%数据读入
[data,~]=xlsread(data);
rows=size(data,1);
%%等宽离散化,规则需要自己定义
rules=[0,0.179,0.258,0.35,0.504];
width_data=zeros(rows,2);
width_data(:,1)=data;
width_data(:,2)=arrayfun(@find_type,data);
%%等频离散化
frequent_data=zeros(rows,2);
frequent_data(:,1)=data;
end_=-1;
for i=1:k-1
start_=floor((i-1)*rows/k)+1;
end_=floor(i*rows/k);
frequent_data(start_:end_,2)=i;
end
frequent_data(end_+1:end,2)=k;
%%聚类离散化
[idx,~]=kmeans(data,k);
cluster_data=zeros(rows,2);
cluster_data(:,1)=data;
cluster_data(:,2)=idx;
figure;
cust_subplot(width_data,3,1,1,k);
cust_subplot(frequent_data,3,1,2,k);
cust_subplot(cluster_data,3,1,3,k);
disp('数据离散化完成!');
-------------cust-subplot.m------------------------------------------------
function cust_subplot(width_data,rows,cols,index,k)
%% 自定义画图
subplot(rows,cols,index);

%%定义图形颜色和数据点的格式
dot_str ={'k*','ko','ks','kd'};
hold on;
for i=1:k
data_ = width_data((width_data(:,2)==i),1);
num = size(data_,1);
y= zeros(num,1);
%%y(:)表示y数组(或向量)中的每一个元素
y(:)=0.5*(i+1);
plot(data_,y,dot_str{1,i});
% plot(data_,y);
end
%title(title_);
hold off
end

——------------find_type.m---------------------------------------------------------------
function [ flag ] = find_type( data )
%% 根据规则,返回类别,1,2,3,4中的一个
rules = [0,0.179,0.258,0.35,0.504];

cols = size(rules,2);
for i=1:cols-1
if data>rules(i) && data<=rules(i+1)
flag =i;
return ;
end
end
flag =-1;

end
可以运行出来的代码

这个简单,举个例子给你:
定义11个离散点如下,
x=[1 2 3 4 5 6 7 8 9 10 11];y=[0.8 0.3 0.2 -0.4 0.6 0.2 -0.1 0.3 0.15 -0.2 0.2];
xx=1:0.01:11;
yy=spline(x,y,xx);
plot(x,y,'o',xx,yy),grid
matlab仿真图就是这样的。

本视频展示如何用matlab绘制散圆状态图,可用于相关科研数据绘图!



如何用matlab来实现离散数据的网格化

实际上离散数据变换太慢了,一般采用fft函数,速度快,而且效果差不多,你不给数据如何写代码


matlab 怎么把行向量转成 矩阵向量?
1、在电脑上打开matlab,在命令行窗口中输入“r = [ 1 2 3 4 ];tr = r'”,其中单引号(')是用于转置操作。2、按回车键之后,可以看到将行向量r转置成为了列向量tr。3、将列向量转置成为行向量,在命令行窗口中输入“v = [1;2;3;4];tv = v'”。4、按回车键之后,可以看到将列向量...

matlab中如何画出幂函数指数为分数时比如y=x^(1\/3)的完整图像
matlab 画图 怎么才能画出幂函数的图像啊,比如y=x^5-3x+4 记住用点运算: 如: x=0:1:20; y=x.^5-3*x+4; plot(x,y)在matlab中如何画出函数y=2.46x\/(1+1.46x)的图像 很好画 的,命令: syms x ; ezplot('2.46*x\/(1+1.46*x)',x)若点(√3,3)在幂函数...

...Simulink,MATLAB,pspice,希望高手指点着几款软件如何用?
2. proteus是仿真单片机及其外围器件的有效工具,可以做原理图布图、代码调试到单片机与外围电路协同仿真,是将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台;3. Simulink不是仿真软件,它只是MATLAB软件下面的一个子仿真模块,主要能仿真电力系统,电机和自动控制等方面的模型;4. MATLAB是...

matlab中的维度和维数有何区别?
x=ones(1,n)表示x为全0数组;q=zeros(1,n)表示q为全0数组;n=length(a)表示获得数组a的最大维度。1、数组的维数:在MATLAB中,允许标量数据沿行、列、页等方向排列成 ‘长方体’,而构成数组,而行、列、页等排列方向就分别被 称为行维、列维和页维。2、数组的规模及相关术语:数组沿某...

如何在MATLAB中导出矢量图
1、把示波形图处背景处理成白色的。2、不能直接用截屏键截屏拷贝到画图工具,这样做出来的图方法后会失真。3、点击示波器工具栏Edit->copy figure,波形图就拷贝到了粘贴板 ,打开visio2007,将图片复制进去,这时候图片已经是矢量图,但拷贝到word中坐标轴坐标太小了。4、右击visio中的波形图->形状-...

如何用matlab编程c1\/T+c2*Q^2\/2*r*T+c3*(rT-Q)^2\/2*r*T求T,Q为何值...
>> syms x >> f=c1\/T+c2*x^2\/2*r*T+c3*(r*T-x)^2\/2*r*T;事先对c1,c2,c3,r,T赋值(我把rT改为r*T不知道对不对)>> y=inline(f);fminbnd(y,-inf,inf) %由于不知道你的取值范围,我就取负无穷到正无穷

怎么样在MATLAB中读取结构体中的数据
简单,使用fieldnames()函数查看有哪些成员,使用getfield()函数查看成员数据,比如:>> a.x1 = 123;>> a.x2 = 'a string';>> a.x3 = [1,2,3,4,5];>> fieldnames(a) % 返回成员名称列表 ans = 'x1''x2''x3'>> getfield(a,'x1') % 查看某一成员的值 ans = 123 ...

Matlab中怎么产生-1到1之间的随机数
x=2*(rand(m,n)-0.5)产生m*n个数,他们构成一个矩阵。。。一楼正解、、、例如:>> x=2*(rand(5,5)-0.5)x = -0.7867 0.7374 -0.1372 -0.7279 0.7061 0.9238 -0.8311 0.8213 0.7386 0.2441 -0.9907 -0.2004 -0.6363 0.1594 -...

在matlab中,如何设置当前目录和搜索路径,在当前目录上的文件和在搜索...
方法一:在 MATLAB 命令窗口中输入 editpath 或 pathtool 命令或通过 【File 】\/| 【SetPath 】菜单,进入“设置搜索路径”对话框,通过该对话框编辑搜索路径。方法二:在命令窗口执行 “path(path,„D:\\ Study ‟)”,然后通过 “设置搜索路径 ”对话查看 “D:\\ Study”是否在搜索...

我需要用matlab做光伏预测,了解到可以利用神经网络算法编程,但不知从...
你要做光伏预测,其实所有的预测的原理都差不多,可以参考别人的案例。建议你看看matlab的书,学习下基本知识,推荐《matlab神经网络30个案例》,上面有很多预测案例。附件是一个基本的用BP神经网络预测电力负荷的例子。BP(Back Propagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是...

灵宝市13565937671: 在matlab上怎样实现信号的离散化处理 -
错须通窍: 首先,计算机处理的信号均为离散化的信号.对于连续模拟信号的表达式,只要给定离散的时间参数,其得到的就是离散信号 例如 sin(2*pi*100*t) 这表示频率为100Hz的正弦信号 那么,令t = 1:0.1:100; y = sin(2*pi*100*t); 得到的就是离散的正弦信号y.

灵宝市13565937671: matlab怎么对离散数据进行拟合 -
错须通窍: 先把数据画出图形,观察有无规律,用拟合工具进行曲线、曲面拟合.你有数据吗?我可以写程序.

灵宝市13565937671: 用MATLAB怎么实现离散信号的卷积啊 编程? -
错须通窍: 在MATLAB中,可以用函数y=filter(p,d,x)实现差分方程的仿真,也可以用函数 y=conv(x,h)计算卷积. (1)即y=filter(p,d,x)用来实现差分方程,d表示差分方程输出y的系数,p表示输入x的系数,而x表示输入序列.输出结果长度数等于x的长e5a48de...

灵宝市13565937671: MATLAB对一组离散的数据进行离散傅立叶变换,得到频谱图,再进行低通滤波,然后再反变换得到离散数据对一组离散的数据进行离散傅立叶变换,得... -
错须通窍:[答案] x=load('baidu.txt');xjw=fft(x,300);for i=1:300 if abs(xjw(i))>40 %截止频率为40HZ xjw(i)=0; endendxx=ifft(xjw);subplot(2,1,1);plot(x);subplot(2,1,2);plot(xx);

灵宝市13565937671: matlab怎样实现离散数据的傅里叶变换? -
错须通窍: 1.有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征(频率,幅值,初相位);2.FFT可以将一个信号的频谱提取出来,进行频谱分析,为后续滤波准备;3.通过对一个系统的输入信号和输出信号进行快速...

灵宝市13565937671: Matlab怎么绘制离散图 -
错须通窍: Matlab怎么绘制离散图 可以用Matlab的基本平面图形函数,即plot()函数实现离散点图. 用法:plot(x,y,'*') 实例:x=[0 0.2 0.4 0.6 0.8 1]; y=[1 0.84779959 0.6049828 0.34716436 0.27696241 0]; plot(x,y,'*') xlabel('x'),ylabel('y')

灵宝市13565937671: matlab中怎么将离散数据拟合
错须通窍: ML估计是这个意思:设待估计参数P,数据X的分布是与参数有关的,即p(X;P);你现在已经有了一组数据X,则这组数据出现的总概率是:p(X1;P)*p(X2;P)*...*p(Xn; P).然后求一个P,使这个总概率最大. 按你的模型,理想情况下数据y是由完全由参数决定的确定性量.不妨假设有高斯噪声干扰,现在只需要写出上面的概率密度函数就可以了.

灵宝市13565937671: 如何用matlab对一大堆离散数据做傅里叶分析
错须通窍: 将离散数据放入数组中,如数组A,共有N个数据,然后B=fft(A,N)就可以了,B就是A的频谱,用stem(B)画频谱图,stem(angle(B))是相位谱,stem(abs(B))是振幅谱

灵宝市13565937671: matlab中for语句实现离散数据的和 -
错须通窍: 若t(i)是一个向量,语句如下 c2(t(i))=0; for j=1:15 c2(t(i))=c2(t(i))+f(t(j))*c1(t(i)-t(j))*60; end

灵宝市13565937671: 用MATLAB对离散数据进行积分 -
错须通窍: 哦 这个比较简单,下面使用两种方法%by dynamic %see also http://www.matlabsky.com %contact me matlabsky@gmail.com %2009.2. % %得到积分数据,这里的x我是随机生成的 x=rand(1,1000); t=[1:1000]*(1/100); % %方法一 trapz(t,x) % %方法二 s=sum(x)*(1/100) %

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网