着手实验所碰到的Matlab问题

我必须承认,coding非我所长。这边项目负责人给了我一个函数,让我自己生成一些测试数据来做个简单的实验,我也是整整做了两个礼拜。其间,问论坛,"doc function",追着师弟们狂问,最后才发现,对熟练的人来说,我做的简直就是so easy,太让人郁闷了。不过有收获就要分享,把这段时间以来所需要到的代码思路给大家说说看。

1.有时需要生成一些数据点集,(数据分布是column-wise的,随机打乱的是数据的列分布方式,而不改变每个数据样本的横纵坐标结构)。这里需要用到一个MATLAB(见笑了 MATLAB 还是我做数值实验的主要工具)函数:randperm(),作用是生成一系列指定范围内的随机排列整数,而且是non-negative。

解决这个问题的思路是给每一列的元素的标号重新随机排列(这样说起来。大家觉得可能不是人话,所以把程序段贴出来,有code有真相嘛...)

data=cat(2,[x;y2],[x;y3]);
% Permutation Randomly
idx=randperm(length(data));
RndData=data(:,idx);

先解释下这段天书()的含义:先把两个数据子集合并成一个较大的数据子集,采用横向的方法"option=2"。length(data)取到的是data的向量的最大维数(也就是这个长数据矩阵的列数,也是这个数据集合的样本数)。然后对这个length(data)按照1~length(data)的范围进行随机重排,也就是相当于把行标号重新随机排列。目的完成。

2.如果对所有数据进行重排呢?参考了一个网上的帖子 写出了如下的代码

f = [ 0101        0102        0103        0104        0205
      0206        0207        0308        0309        0410
      0411        0512        0513        0614        0615
      0716        0817        0918        1019        1120
      1221        1322        1423        1524        1625
      1726        1827        1928        2029        2130
      2231        2332        2433        2534        2635
      2736        2837        2900        2900        2900];
temp = reshape(f,1,[]);
idx = randperm(length(temp));
temp = temp(idx);
[p q] = size(f);
f_new = reshape(temp,p,q)

本文在撰写过程中参考了http://ilovematlab.cn/thread-237500-1-1.html的相应代码 向作者lzc901015表示感谢

看来办法还是比问题多 不过没有问题 不会倒逼着你去想解决方案,拼吧 兄弟们 不要被借口拦住了前进的脚步!!!

时间: 2024-10-27 10:38:53

着手实验所碰到的Matlab问题的相关文章

MATLAB实验

数据处理 实验目的 进一步熟悉MATLAB数据处理基本功能. 实验内容 成绩评估 姓名 课1 课2 课3 课4 课5 总分 平均 标准差 优良率 学生1 97 86 89 94 96 462 92.4 4.7223 1 学生2 70 94 87 79 60 390 78 13.472 0.4 学生3 66 60 73 92 71 362 72.4 12.054 0.2 学生4 94 65 66 78 61 394 72.8 13.442 0.2 学生5 69 92 66 78 87 392 78

数学实验

0.1 什么是数学实验 0.2 怎样做好数学实验 0.3 MATLAB简介 0.4 Mathematica简介 0.5 本书的使用实验1 矩阵的基本运算(一)实验2 矩阵的基本运算(二)实验3 MATLAB中的极限和微分运算实验4 MAILAB中的各种积分运算实验5 MATLAB的图形功能实验6 MATLAB的程序结构实验7 分形初探实验8 数字图像处理初探实验9 数字图像的边界提取实验10 图像压缩的MATIAB实现实验11 B6zier曲线的绘制实验12 实验数据的插值实验13 实验数据的拟

Matlab与单片机的串行通信及数据处理

http://hi.baidu.com/20066203/blog/item/891edf52f73278040df3e360.html 摘要:结合单片机和Matlab两者优点,基于事件驱动中断通信机制,提出一种Matlab环境下PC机与单片机实时串行通信及数据处理方法:完成单片机数据采集系统与PC机RS-232/RS-485串行通信及其通信数据分析处理.文件存储.FIR滤波及图形显示:简化系统开发流程,提高开发效率.该方法已成功应用于一个PIC16F876单片机应用系统实例之中. 关键词:PI

MATLAB 线性运算之图像相加去噪

一.原理 图像相加可以对同一场景的多幅图像求平均值,以降低加性(additive)随机噪声. 二.实验 I= imread('E:\matlab\work\lenna.bmp'); %读取图片 [L H]=size(I) %获取大小 K=zeros(L,H) for i=1:100 J=imnoise(I,'gaussian',0,0.02); %随机加噪 J1=im2double(J); %转成double型进行相加 K=K+J1; end K=K/100; subplot(2,2,1),im

【STM32H7的DSP教程】第9章 Matlab的串口通信实现

完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第9章   Matlab的串口通信实现 本章节主要为大家讲解Matlab的串口方式波形数据传输和后期数据分析功能,非常实用. 9.1 初学者重要提示 9.2 程序设计框架 9.3 下位机STM32H7程序设计 9.4 上位机Matlab程序设计 9.5 Matlab上位机程序运行 9.6 实验例程说明(MDK) 9.7 实验例程说明(IAR) 9.8 总结 9.1 

系统启动时遇到“设备忙”问题的解决

今天做了一个实验,碰到了一个问题. 实验是这样的: 为运行于虚拟机上的CentOS 6添加一块新硬件,提供两个主分区: (1) 为硬盘新建两个主分区:并为其安装grub: (2) 为硬盘的第一个主分区提供内核和ramdisk文件: 为第二个分区提供rootfs: (3) 为rootfs提供bash.ls.cat程序及所依赖的库文件: (4) 为grub提供配置文件: (5) 将新的硬盘设置为第一启动项并能够正常启动目标主机: 这是我的实验步骤: (1) 为硬盘新建两个主分区:并为其安装grub:

[家里蹲大学数学杂志]第055期图像滤波中的方向扩散模型

$\bf 摘要$: 本文给出了王大凯等编的<图像处理中的偏微分方程方法>第 5.4.1 节的详细论述. $\bf 关键词$: 图像滤波; 方向扩散模型; matlab 编程 1. 模型的建立 从保护图像边缘的观点出发, 我们希望扩散是沿着平行于边缘的切线方向 (即垂直于 $\n I$ 的方向) 进行. 于是得到如下 PDE: $$\bee\label{1:df} I_t=I_{\xi\xi}, \eee$$ 其中 $\xi(\perp \n I)$ 为单位矢量. 我们化简 \eqref{1:d

经典的机器学习方面源代码库

编程语言:搞实验个人认为当然matlab最灵活了(但是正版很贵),但是更为前途的是Python(numpy+scipy+matplotlib)和C/C++,这样组合既可搞研究,也可搞商业开发,易用性不比matlab差,功能组合更为强大,个人认为,当然R和Java也不错. 1.机器学习开源软件网(收录了各种机器学习的各种编程语言学术与商业的开源软件) http://mloss.org 2 偶尔找到的机器学习资源网:(也非常全,1和2基本收录了所有ML的经典开源软件了) http://www.dmo

【那年那人那linux】“正则表达式”初窥之二则问题

始于linux学习过程中欲检测学习效果,同学推荐了两道正则表达式的题目.这两道题目字数不多,但却引发了我的一段思考.操作环境CentOS6.7 2.6.32-573.22.1.el6.x86_64 现题目整理如下: [第一则] 请使用正则表达式与sed命令将/etc/passwd内的第一个单词与最后一个单词置换.例如: sc:x:891:809::/home/sc:/bin/bash #操作之前 bash:x:891:809::/home/sc:/bin/sc #操作之后 [第二则] 请使用正则