精华内容
下载资源
问答
  • 介绍一个方法,在MATLAB里,一句话生成任意长度、起点、终点、间隔的顺序数组。

    在这里插入图片描述
    比如我想生成一个1到100的一维数组。

    可以先定义一个长度为100的数组,然后接着一个for循环,就可以实现。

    不过略显复杂,复杂的我都不想打个示例了。

    下面介绍一个方法,在MATLAB里,一句话生成任意长度的顺序数组

    A =1:10

    数组的起点和终点都可以自己设置,默认间隔为1
    在这里插入图片描述
    如果想改变数组递增间隔,也可以简单实现
    在这里插入图片描述

    至此,我们实现在matlab中生成任意起点、任意终点、任意长度和任意间隔的任意数组~

    猜你喜欢:👇🏻
    【Matlab】一种超简单的二维矩阵降维方法
    【Matlab】如何提取矩阵中特定位置的元素?
    【Matlab】如何简单实现数组间交集,并集和补集?

    在这里插入图片描述

    展开全文
  • MATLAB产生"[1, 2, 3, 4, 5,...]"这样的按顺序排列的自然数一维向量。 实现这个功能其实只要两行代码: a = randperm(10); b = sort(a); 看下结果: 补充:其实可以更简单: a = (1:10); ...

    记录一下,一个小技巧。用MATLAB产生"[1, 2, 3, 4, 5,...]"这样的按顺序排列的自然数一维向量。

    实现这个功能其实只要两行代码:

    a = randperm(10);
    b = sort(a);

    看下结果:

    补充:其实可以更简单:

    a = (1:10);

    展开全文
  • MATLAB手写数字识别

    万次阅读 多人点赞 2019-07-31 14:07:22
    本文主要是根据《matlab手写神经网络实现识别手写数字》博客中的代码进行试验。由于没有数据集,所以采用了MNIST数据集进行代码的运行。数据集不同所以需要对代码进行微小改动。 简介 数据处理:4000张作为训练样本...

    本文主要是根据《matlab手写神经网络实现识别手写数字》博客中的代码进行试验。由于没有数据集,所以采用了MNIST数据集进行代码的运行。数据集不同所以需要对代码进行微小改动。

    简介

    数据处理:4000张作为训练样本,1000张作为测试样本;
    图像大小:图片的灰度值矩阵(28,28);
    图像名称:由标签和顺序号组成。标签_顺序号.bmp
    训练样本:每个数字的图像名称的顺序号是从0-399,各400个。
    在这里插入图片描述
    测试样本:每个数字的图像名称的顺序号是从401-500,各100个。
    在这里插入图片描述

    标签制作

    标签格式:
    训练数据集中前400个标签都是[1,0,0,0,0,0,0,0,0,0]代表数字0,401-800个标签都是[0,1,0,0,0,0,0,0,0,0]代表数字2,其余类推。这也就是所谓的onehot
    由于数据集不同,图像的格式也不一样等因素,需要对代码稍微做修改,具体如下:
    制作label时遇到的障碍,xlswrite()函数在写入矩阵时对矩阵大小有限制,一定要小心,因为我的电脑安装的是2003,所以无法对4000列数据直接写入,只好行列互换后再存储,代码将生成两个xsl文件,分别是label.xsl和label2.xsl,分别是训练数据和测试数据的标签。
    增加一个label_create.m文件,用来新建标签文件。
    label_create.m代码:

    % 创建Excel存储label
    % 根据图片的名字,例如:3_101.bmp,第一个数值是标签,第二个是图片数。
    % 为了转换成神经网络的标签,0-9这10个标签应转换为[1,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0]
    % 这样的格式,即第几位是1就代表标签是几?如[0,1,0,0,0,0,0,0,0,0]代表2
    % 例如我们的前 400个图都是0,所以标签都是[1,0,0,0,0,0,0,0,0,0]
    % 因为每个版本的Excel允许存储的行列不同,这里是2003版存储不下4000列,故需要将label矩阵转置后才能存下
    % Excel2003可存储:65536*256
    clear all;
    clc;
    label=zeros(10,4000);
    label2=zeros(10,1000);
    
    eye_sam=eye(10);
    for j=1:10
        label(:,(400*(j-1)+1):400*j)= repmat( eye_sam(:,j),1,400 );
    end
    T=label';
    xlswrite('D:\Documents\MATLAB\label.xls',T);
    
    for j=1:10
        label2(:,(100*(j-1)+1):100*j)= repmat( eye_sam(:,j),1,100 );
    end
    T2=label2';
    xlswrite('D:\Documents\MATLAB\label2.xls',T2);
    

    getdata.m代码修改:

    function[x_train,y_train,x_test,y_test]=getdata()
    % 把图片变成像素矩阵
    % path :图片路径 
    % x_train:训练样本像素矩阵(784,4000)
    % y_train:训练样本标签(10,4000)
    % x_test:测试样本像素矩阵(784,1000)
    % y_test:测试样本标签(10,1000)
    
    x_train = [];
    for i=0:9
        for j=0:399
            x=im2double(imread(strcat('D:\Documents\MATLAB\images4000\',num2str(i),'_', num2str(j),'.bmp')));
            x=reshape(x,784,1);         % 将28*28的数值矩阵变为784*1,每列代表一幅图
            x_train = [x_train,x];      % 每循环一次加入一列数据
        end
    end
    
    x_test =[];
    for i=0:9
        for j=401:500
            x=im2double(imread(strcat('D:\Documents\MATLAB\images_test1000\',num2str(i),'_', num2str(j),'.bmp')));
            x=reshape(x,784,1);         % 将28*28的数值矩阵变为784*1,每列代表一幅图
            x_test = [x_test,x];        % 每循环一次加入一列数据
        end
    end
    
    % 读取标签文件,注意:由于标签的存储问题,读入后需要进行转置
    data=xlsread('label.xls');
    data2=xlsread('label2.xls');
    y_train=data';
    y_test = data2';
    
    % 返回的参数
    x_train;
    y_train;
    x_test;
    y_test;
    
    end
    
    

    其余代码保持和原博客中的一致。全部文件如下图:
    在这里插入图片描述
    运行main.m文件即可。

    文件下载地址:链接:https://pan.baidu.com/s/1JhPs94qO-7VkPI_kknv_Tg
    提取码:xuu6
    如链接失效可加QQ:1021288218 索取。

    参考:
    https://blog.csdn.net/yunyunyx/article/details/80473532

    展开全文
  • MATLAB矩阵生成

    万次阅读 多人点赞 2017-01-10 16:23:00
    MATLAB矩阵生成

    1,

      A=zeros(m,n,p,...)或A=zeros([m,n,p,...]):m*n*p*...全零矩阵
      A=zeros(...,classname):classname表示数据类型
    

    2,

    A=ones(m,n,p,...)或A=ones([m,n,p,...]):生成m*n*p*...全1矩阵
     A=ones(...,classname):classname表示数据类型
    

    3,

    A=magic(N),N>2:生成一个N*N的魔方矩阵,
        每一行、每一列及对角线元素之和都相等,矩阵元素为1~N*N之间的整数
    

    4,

    A=eye(N):产生N*N单位矩阵
    A=eye(m,n):产生m*n矩阵,对角线元素为1,其余为0
    

    5,

    rand()返回的矩阵元素服从0到1之间的均匀分布
    rand(m,n,p,...)或rand([m,n,p,...]):生成m*n*p*... 0到1之间均匀分布的随机数
    rand(...,‘double’)或rand(...,‘single’):产生的随机数类型为双精度或单精度浮点数
    随机数需要种子,保存随机数的种子可以在下次运行程序时产生完全相同的数据,便于数据和功能的再现。
    rand('seed',a):使用MATLAB v4随机数生成器
    rand('state',a):使用MATLAB v5随机数生成器
    rand('twister',a):使用MATLAB Mersenne Twister随机数生成器
    rng(a):新版本MATLAB推荐使用形式,使用Mersenne Twister算法
    rng(a,‘v4’)代替rand('seed',a),rng(a,‘v5uniform’)代替 rand('state',a)
    rng(‘default’):将种子设为默认值
    

    6,

    randn():生成标准正态分布随机数,均值为0,方差为1,
             如果要产生均值为u、标准差为d的正态分布随机数,
             可以采用A=u+d*randn(m,n,p,...)。
    randn()调用格式同rand()。
    

    7,

    linspace()函数产生线性等分向量。
    线性等分向量是一个元素均匀增大或减小的向量。
    相邻元素之间的差值相等,相当于等差数列。
    linspace(a,b):产生1*100的向量,向量元素值从a均匀变化到b
    linspace(a,b,N):产生1*N的向量,向量元素从a均匀变化到b
    a:b或colon(a,b):产生从a到b,以1为步进值均匀增加的向量
    a:step:b或colon(a,colon,b)产生从a到b以step为步进值均匀增加的向量
    

    8,

    logspace(a,b):产生1*50的向量,向量元素值从10^a均匀变化到10^b
    logspace(a,b,N):产生1*N的向量,向量元素从10^a均匀变化到10^b
    

    9,

    P=randperm(N):返回向量[1,2,...,N]的一个随机排列,
               向量中的元素为1~N之间的整数,每个数字出现且仅出现一次
    P=randperm(N,K):返回长度为K的向量,
               其中的元素取自1~N间的整数,元素无重复。K小于或等于N。
    perms(A):产生一个向量的所有排列形式
    

    10,

    randi生成可重复的均匀分布随机整数。
    R=randi(IMAX,N):返回一个N*N随机矩阵,
             矩阵中元素为1~IMAX之间的均匀分布随机整数,IMAX大于1
    R=randi(IMAX,M,N)或R=randi(IMAX,[M,N]):返回M*N随机矩阵
    R=randi([IMIN,IMAX],...):产生IMIN~IMAX之间的随机整数
    

    11,

    diag有两种用法:由对角线元素生成矩阵;由矩阵生成对角线元素
    由向量生成矩阵:
    X=diag(V,K):V是一个向量,K指定向量V在生成的矩阵中的位置。
                 当K=0时返回一个以V为主对角线的方阵,
                 当K>0时,V是矩阵主对角线上方的第K条对角线,
                 当K<0时,V是矩阵主对角线下方的第|K|条对角线
    X=diag(V):相当于diag(V,0)
    由矩阵生成向量:
    V=diag(X,K):X是一个矩阵,返回一个列向量V,V为矩阵X的第K条对角线。
                 当K=0时返回主对角线,
                 当K>0时返回矩阵主对角线上方第K条对角线,
                 当K<0时返回矩阵主对角线下方第|K|条对角线
    V=diag(X):返回矩阵的主对角线
    

    12,

    repmat:复制矩阵,形成更大的矩阵或数组
    B=repmat(A,[m n])或B=repmat(A,m,n):矩阵A是待复制的矩阵,函数将A视为一个元素,
    按照m*n的形式复制、拼接为新的矩阵B。size(B)=[size(A,1)*m,size(A,2)*n]
    B=repmat(A,[m n p ...]):返回一个大的多维数组B,B包含m*n*p个矩阵,
       大小为[size(A,1)*m,size(A,2)*n,size(A,3)*p,...]
    

    13,

    reshape:改变矩阵的形状而保持元素不变
    B=reshape(A,[m n p ...])或B=reshape(A,m,n,p,...):
        矩阵A为待变维的矩阵,元素个数必须和m*n*p*...相等。
        函数将A转变为[m,n,p,...]形状,元素顺序保持列优先
    B=reshape(A,siz):按siz指定的形状对矩阵A进行变维
    
    展开全文
  • matlab生成dxf代码无人机自动捕捉 用于高质量建筑重建的图像采集 依赖项和要求 此 Matlab 代码取决于以下工具包和库 工具箱 libigl(标签:v1.3.1) 剪刀 FM2 工具箱快速前进 另外,需要安装以下Matlab工具箱 geom2d...
  • matlab生成数字1-n的列向量

    千次阅读 2020-04-14 22:24:50
    matlab生成数字1-n的列向量 觉得有用的话,欢迎一起讨论相互学习~ 利用行向量 首先生成1-n行矩阵 转置 % n此处设置为5 BD1=1:5 BD2=BD1.' % BD1 = % % 1 2 3 4 5 % % % BD2 = % % 1 % 2 % 3 % 4 % 5 reshape...
  • 关于Matlab生成批量文件文件名统一数字位数方法规定文件名数字位数方法:读取文件方法 在生成批量含有数字编号的文件时,应该注意使用统一位数的数字来命名,且明明数字位数应该比文件数量最大值至少多一位。如当前...
  • 因为本学期需要c#的课程设计,然后我就在网上自学习了一些这方面的知识,比如c#调用matlab函数的例子,在网上也比较多。但是基本都是零零碎碎的。我也是在网上零零碎碎找的,所以我算是整理了一下。整个文章都是自己...
  • matlab生成正弦函数代码BP神经网络 一个简单的神经网络,用于逼近C和MATLAB语言中的函数。 1.文件清单 “ MLP1_sin.m”:matlab中的wirtten,用于在批处理模式下近似正弦函数。 “ sequ1.cpp”:用C语言编写,用于...
  • matlab生成谐波代码谐波语法 书面笔画谐波语法建模的Python代码 运行主脚本HG_all1.py(它将调用HGlearn的最新版本) 约束文件在第1列中具有约束名称,在第2列中它是否处于活动状态。 约束可以具有任何名称,只要...
  • matlab生成代码顺序 MapEditor_RA2 做一个没有UI的地图编辑器,先实现基本功能。 说明:全部代码来自zzattack和OPENRA的开源程序。本人只是对代码进行一个组合。 关于python程序: 需要先手动复制[isoMapPack5]下面...
  • 在找不到提供有效版本的 RANDPERM 函数的帖子后开发了该函数。
  • 生成随机顺序的颜色图。 例如, rjet = randmap(256, 'jet') 生成 256 个级别的随机喷射颜色图。 可能对像示例图片这样的图像分割很有用。 支持的颜色图类型是内置的 MATLAB 颜色图类型:“parula”、“jet”、“hsv...
  • 主要用于矩阵排列顺序打乱,随机生成整数1~n范围内的整数。 matrix = randperm(n)%产生一组1-n的整数 matrix = randperm(n, a)%返回一组1-n范围内的a个整数 例子 >> matrix = randperm(10) matrix = 1 8 ...
  • Matlab自带函数randperm(n)可以产生1到n的整数的无重复的随机排列,利用它就可以得到无重复的随机数。例如: randperm(n):产生一个1到n的随机顺序。 >> randperm(10) ans = 6 4 8 9 3 5 7 10 2 1 利用生产...
  • 此函数确定 2^K 阶离散沃尔什函数 N 使用递归算法来降低内存需求。 N是自然的范围从 0 到 2^K-1 的数字,当 N=0 时,沃尔什函数没有零交叉和 N = 2^K-1 具有最大值的沃尔什函数零交叉(顺序)。 该算法是根据参考...
  • 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...
  • matlab显示三维点并按照顺序绘制: test1 = load('test.asc'); pcshow(test1); scatter3(test1(:,1),test1(:,2),test1(:,3),'filled','MarkerFaceColor',[1 0 0]); x = test1(:,1); y = test1(:,2); z = test1(:,3...
  • 准备好101_ObjectCategories数据库 打开MATLAB,添加extract.m脚本,运行。extract.m代码如下 %trian test ... %matlab在本地数据库生成list所以路径是反斜杠 ParentPath = dir(ParentFolder); NumFolde
  • file_path = 'F:\**\'; fpath = fullfile(file_path, '*.jpg'); %读入所有图片 im_dir = dir(fpath); im_num = length(im_dir); for i = start_num:start_num+7 %im_num IMname = regexp(im_dir(i).name, '\.', '...
  • matlab开发-分段顺序顺序系统。分数阶混沌系统的数值解。
  • x1 = linspace(0,33,66);%产生线性间隔向量,向量大小为66
  • MATLAB基础学习(五)-MATLAB矩阵介绍

    万次阅读 多人点赞 2018-09-14 10:19:28
    1.MATLAB赋值语句 (1)变量=表达式 (2)表达式 其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵 例如计算表达式的值,并显示计算结果,在MATLAB命令窗口输入指令: 其中pi和i都是MATLAB...
  • % 生成网格点,然后转换为二维数组 mesh_point_numer = 10 left = -1; rigth = 1; mesh_step = 2.0/mesh_point_numer; x = -1:mesh_step:1; y = -1:mesh_step:1; % 生成不带便捷的网格点 [meshX,meshY] = meshgrid...
  • (这也比我系统上 Matlab 的 perms 快得多,仅用于生成所有排列,尽管它不会以相同的顺序生成它们。) 您传入一个初始向量和一些要生成的下一个排列。 如果第一个输入不是向量,则将其视为按列的向量。 您可以使用...
  • 生成的点不能直接连起来,因为点的顺序有可能是错乱的,所以首先要进行顺序判断,方法是计算角度。找到平面内某一点,计算多边形每一个点到这个点连线和x轴的夹角,对这个夹角进行排序,就可以得到点的顺序,把点...
  • 程序快速输出 a 到 b 范围内的 n 个随机整数。 整数是从均匀分布中抽取的,以使选择整数的可能性相等。 该程序旨在处理非常大的整数... 用户指定输出是排序还是随机顺序。 用户指定是删除重复整数还是允许重复整数。
  • 基于MATLAB的直接序列扩频通信系统仿真 前言 文章迭代更新 仿真流程图 关键技术细节 扩频解扰解扩部分 加扰去扰部分 加扰原理图 调制解调部分 调制原理图 解调原理图 高斯信道部分 实验结果 扩频增益为10时,walsh...
  • 顺序关系生成
  • hmm模型matlab代码顺序贝叶斯学习 作者:Robert Tjarko Lange,Miro Grundei,Sam Gijsen 日期:2019年2月 存储库实现了解析二进制序列的不同的顺序贝叶斯学习代理。 二进制序列先前是由图形模型生成的。 有关详细...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,218
精华内容 4,087
关键字:

matlab生成顺序数

matlab 订阅