如何在matlab中一维数组运用图示的这样一组信号绘制出脑电散点图,谢谢大家了

教你怎么利用Matlab画散点图
1、既然要画散点图,自然就需要一些离散的数据了,下面我们就利用matlab生成这些数据,实际应用中我们获得的数据是从其他方式获得的。具体的指令和结果如下图所示:
2、首先需要先画出点图,即把每一个数据点的位置画出来,所使用的指令为:scatter(x,y1,'k'),该指令主要用于绘制点图,后面''里面的k标示的是每一个点用黑色画出,里面也可以一起添加一些其他的参数:如下图所示:
3、下面是利用第一步生成的数据和第二步的指令画出的点图,如下图所示,绿色的是y1的数据,红色的是y2的数据。
4、下面就把点串起来,就大功告成了,使用的指令是:plotyy(x,y1,x,y2,'plot');具体的图形如下图所示:
没有更多推荐了,如何使用Matlab画出三维空间中离散点的包络面? - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。58被浏览<strong class="NumberBoard-itemValue" title="分享邀请回答n = 100000;
delta1 = rand(n, 1)*2*pi;
delta2 = rand(n, 1)*2*pi;
delta3 = rand(n, 1)*2*pi;
delta4 = rand(n, 1)*2*pi;
x = cos(delta4) - cos(delta2);
y = cos(delta1) - cos(delta3);
z = sin(delta1) + sin(delta2) + sin(delta3) + sin(delta4);
scatter3(x, y, z, '.')
你可以手动Rotate,大致可以看出包络面的形态,应该是一个关于原点中心对称的光滑曲面(事实上,在之后的分析中可以佐证)。随机散点图只提供了包络面的一个大致形态,当然你可以通过提高随机实验的数量级以实现散点集聚而成的外围充分光滑,单就「画出包络面」来说也算是一种低阶的解决方案。那有没有可能通过精确量化的方式直接给出包络面呢?答案是肯定的,但我们需要换个角度思考问题。三维空间的包络面,除了能「恰好」囊括所有坐标点外,还可以这么理解:空间中的包络面是一个类立方体表面的存在,或者说是一个一般封闭体的表面--所有「边缘点」构成的集合.所以问题的症结就在于确定全体坐标点的边缘面,稍微观察下的表达式,不难发现其取值范围均为。考虑到两者的独立性,恰好能布满如下区域:所以每当给定的坐标,只需要去寻找此时坐标的「边缘」,即如何求解这个约束规划问题,还需要回到上来,为关于的变量,则是关于的变量,而的表达式恰好是关于分离的:因此,上述约束规划问题的最优解当且仅当对的「贡献」同时达到最大。这里的「贡献」主要是为了简化最优化问题中的一些常用术语,尽可能通俗的阐述其内在涵义。你可以将其理解为一个更直观的约束规划:例如,对的最大「贡献」为考虑到,对的贡献存在形式上的「轮换对称性」,关于的极大极小约束规划转化为求解如下规划问题:如果还是觉得有点绕,不妨这么理解一下:现在给定一个,你需要通过求解另一个一般的约束规划问题来找到此时对的极大(极小)「贡献」;同理,对给定的实施类似的操作,然后将两种极大(极小)「贡献」叠加即得到的最值。变换不同的组合(理想状况是遍历区域),重复如上操作,找到对应的.最后将和在Matlab中surf/mesh出来,就得到了上下两张包络面。至于,这个一般的约束规划问题怎么解,你可以借助MATLAB中求解非线性约束规划的相关函数,如fmincon,但是可能会存在初始点设定的问题,很容易产生奇异值或者陷入局部最优,而导致结果失准。个人推荐的解法是「拉格朗日乘数法」(Lagrange Multiplier Method),具体解法步骤有时间再贴上来,或者自行百度。下面贴下最后的实现结果和相关代码:下包络面:下包络面加入大量随机散点:最后再加入上包络面(和下包络面对称):请忽略渣配色......相关代码:n = 100000;
delta1 = rand(n, 1)*2*pi;
delta2 = rand(n, 1)*2*pi;
delta3 = rand(n, 1)*2*pi;
delta4 = rand(n, 1)*2*pi;
x = cos(delta4) - cos(delta2);
y = cos(delta1) - cos(delta3);
z = sin(delta1) + sin(delta2) + sin(delta3) + sin(delta4);
scatter3(x, y, z, '.y')
[x, y] = deal(linspace(-2, 2, 120));
zMax = 2*sin(acos(x/2));
[X Y] = meshgrid(x, y);
Z = bsxfun(@plus, zMax, zMax');
surf(X, Y, Z)
colormap hot
surf(X, Y, -Z)
3213 条评论分享收藏感谢收起 clear;close all;clc;
%% 绘制空间点
deta1=rand(n,1)*2*pi;
deta2=rand(n,1)*2*pi;
deta3=rand(n,1)*2*pi;
deta4=rand(n,1)*2*pi;
x=cos(deta4)-cos(deta2);
y=cos(deta1)-cos(deta3);
z=sin(deta1)+sin(deta2)+sin(deta3)+sin(deta4);
%% 绘制空间散点图
scatter3(x,y,z,'.b');
%% 求解凸包点,并绘制凸包图
X=[x,y,z];
C=convhulln(X);
for i = 1:size(C,1)
j = C(i,[1 2 3 1]);
patch(X(j,1),X(j,2),X(j,3),rand,'FaceAlpha',0.6);
% Modify the view.
view(3), axis equal off tight vis3d; camzoom(1.5)
colormap(spring)
%% 顺便求体积
scatter3(x,y,z,'.y');
[C,V]=convhull(x,y,z);
for i = 1:size(C,1)
j = C(i,[1 2 3 1]);
patch(X(j,1),X(j,2),X(j,3),rand,'FaceAlpha',0.6);
% Modify the view.
view(3), axis equal off tight vis3d; camzoom(1.5)
colormap(spring)
两个函数使用方法不同,而且第二个函数convhull还能算出对应的面积或者体积,(大部分代码来自帮助文档和楼上的CHNL4前辈),好像贴出效果图长度就超出限制了,就暂时不贴效果图了。。。。。----------------------------来修改一次试试能否贴图------------------------------------------------------------------------------------------------------------来修改一下:今天的想法是提取出凸包的点之后,通过平面拟合中多项式来进行拟合代码如下: %%
提取出凸包点的坐标
%将C变换成一列
C=unique(C);
%提取中凸包点的索引
XI=X(C,:);%提取中凸包点的坐标
scatter3(XI(:,1),XI(:,2),XI(:,3),'.B');
%% ---------------------------------------------
scatter3(XI(:,1),XI(:,2),XI(:,3),'.B');
tu_x=XI(:,1);%包络面上点的X坐标
tu_y=XI(:,2);%包络面上点的Y坐标
tu_z=XI(:,3);%包络面上点的Z坐标
%% 提取出上包络面,即Z大于0的点
index=find(tu_z&=0);
tu_xb=tu_x(index);
tu_yb=tu_y(index);
tu_zb=tu_z(index);
[fitobject,gof,output]=fit([tu_xb,tu_yb],tu_zb,'poly23')
plot(fitobject,[tu_xb,tu_yb],tu_zb)
[fitobject1,gof1,output1]=fit([tu_xb,tu_yb],tu_zb,'poly33')
plot(fitobject1,[tu_xb,tu_yb],tu_zb)
渣结果如下:83 条评论分享收藏感谢收起写回答查看: 13251|回复: 13
这样的彩色散点图怎么做的?
该用户从未签到
aaa.jpg (116.63 KB, 下载次数: 14)
15:30 上传
有个两列的矩阵,很多行&&一列对应x,一列y,
现在想出图,想重合多的点发红,少的点发蓝。
然后需要统知道最密集的点是哪个
怎么做呢。如果大家没时间给点提示也行。谢谢了。
该用户从未签到
做一个3×3的值都是1的矩阵作为掩模,与点相乘后和值最大(最大值是多少自己算),就证明周围密度最大,然后这些点标红就可以了,其余点标蓝
该用户从未签到
呃。。虽然没咋弄懂,但是你这么做之后不就是只有蓝色和红色的了么?
该用户从未签到
是啊,红色代表密集,蓝色代表不密集,最密集的点就是红色的点
该用户从未签到
先看看scatter函数吧。
该用户从未签到
以前看到过scatter,但是那个彩色的应该怎么定义呢。
网站官方,,,保证您有偿编程安全。
该用户从未签到
给你举个例子,先产生二元正态分布随机数,然后计算每点处的密度值,然后画散点图:MU1 = [1 2];
SIGMA1 = [2 0; 0 .5];
MU2 = [-3 -5];
SIGMA2 = [1 0; 0 1];
XY = [mvnrnd(MU1,SIGMA1,1000);mvnrnd(MU2,SIGMA2,1000)];
P = [mvnpdf(XY(1:1000,:),MU1,SIGMA1);mvnpdf(XY(1001:end,:),MU2,SIGMA2)];
X = XY(:,1);
Y = XY(:,2);
scatter(X,Y,3,P,'filled')复制代码效果图:
分色散点图.jpg (24.77 KB, 下载次数: 16)
20:58 上传
注意:上面计算每点处的密度是用二元正态分布算的,对于你的数据,需要用经验密度。
该用户从未签到
哈哈。今天才看到。还是谢谢了!
不过昨天你告诉我那个能做,我就自己研究出来了。呵呵。
虽然scatter出图很卡。因为80000多数据。呵呵。
再次感谢!
网站官方,,,保证您有偿编程安全。
该用户从未签到
问题得到解决就好!也希望把你完整的解决方案发上来共享。
该用户从未签到
本帖最后由 pzp1127 于
18:54 编辑
概率密度函数分布.jpg (29.12 KB, 下载次数: 24)
18:50 上传
xiezhh 发表于
给你举个例子,先产生二元正态分布随机数,然后计算每点处的密度值,然后画散点图:效果图:
注意:上面 ...
老师您好,我的问题跟这个类似,但以散点加密度值出图,总觉得这个图片放在论文里不是很美观,假如不需要知道点的位置,而只需要密度分布,该怎么处理呢?可不可以考虑用《MATLAB统计分析与应用:40个案例分析》书中沪深两市概率密度分布的例子算两列数据的联合密度函数?
网站官方,,,保证您有偿编程安全。
Powered bymatlab如何做散点图_百度知道
matlab如何做散点图
我有更好的答案
首先需要有对应的离散数据。这里以二维的数据举例clc,clearx=[1 5 3 6 10];y=[12 16 8 33 20];plot(x,y,&#39;o&#39;)
采纳率:72%
来自团队:
举个例子吧,我也是刚搞明白:x=[0 10 20 25 30 40 50];y=7.5 -17.5 20 7.5 20 -17.5 7.5];plot(x,y,&#39;r&#39;)plot(x,y,&#39;+&#39;),你运行下就知道了。不过我以前做散点图的适合好像没这么麻烦,不知道怎么回事,第一个plot做出来的是把散点图都连接起来的。
本回答被提问者采纳
为您推荐:
其他类似问题
散点图的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。苹果/安卓/wp
积分 78, 距离下一级还需 7 积分
道具: 涂鸦板, 彩虹炫, 雷达卡, 热点灯, 显身卡, 匿名卡, 金钱卡下一级可获得
权限: 自定义头衔
购买后可立即获得
权限: 隐身
道具: 金钱卡, 变色卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
17:02:14 上传
我想画出那种倾斜的样子,其外观就像T分布的散点图一样,也就是,这个散点图正好在对角线上,但我这个怎么做出来使垂直于x轴的啊,希望大家懂的帮我解答一下啊,谢谢
plot函数,设定好x轴和y轴,具体参看matlab的帮助文件
经事还谙事,阅人如阅川
不是很懂楼主的意思
散点做出来是怎样就是怎样呗……
画图后运行 plottools 自己慢慢修改呗。
最好是把你生成数据的程序贴上来 这样岂不是无从下手?还有 用plottools 修改 岂不是有篡改实验数据之嫌?
虽然不太明白你问的问题是什么意思,我觉得可能和你的坐标轴设置的范围有关,看LZ已经画出了散点图了,试着用这个命令设置一下坐标轴。
set(gca,'XTick',0:20:140);
set(gca,'XTickLabel',0:20:140);
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
论坛法律顾问:王进律师

我要回帖

更多关于 matlab在金融中的运用 的文章

 

随机推荐