精华内容
下载资源
问答
  • 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小白入门必备教程

    千人学习 2019-12-30 15:27:30
    MATLAB 是一种用于算法开发、数据可视化、数据分析以及数值计算的高级计算语言和交互式环境,本课程将深入浅出讲解 MATLAB 的基本操作、MATLAB 编程和绘图等。          
  • MATLAB教程(1) MATLAB 基础知识

    万次阅读 多人点赞 2017-10-26 20:57:32
    去年看过一点点MATLAB,很久不用,遗忘惊人。为了加深自己的印象,扎实基础,现将官网上的基础教程做简单的翻译。 首先,以下从九个部分简单介绍基础入门知识。第一部分:MATLAB显示桌面的基本布局...

    初学。去年看过一点点MATLAB,很久不用,遗忘惊人。为了加深自己的印象,扎实基础,现将官网上的基础教程做简单的翻译。

    首先,以下从九个部分简单介绍基础入门知识。

    第一部分:MATLAB显示桌面的基本布局

    https://cn.mathworks.com/help/matlab/learn_matlab/desktop.html

    1.启动MATLAB后,桌面会显示默认布局,主要有以下三个部分:

    • 当前文件夹
    • 命令行窗口
    • 工作空间

    2.在MATLAB中一般需要创建变量和调用函数。

    直接在命令行中输入变量名以及其值即可(比如:a = 1),多个变量的创建同理,不再赘述。

    需要注意的是,如果没有定义输出变量,MATLAB会使用一个名为ans的变量来储存计算结果。

    这里写图片描述

    3.如果语句以分号结束,表示MATLAB内部会执行这一运算,但是命令行不对计算结果进行输出。

    第二部分:矩阵和数组

    https://cn.mathworks.com/help/matlab/learn_matlab/matrices-and-arrays.html

    大多数的编程语言一次性只能对一个数进行操作,而MATLAB主要被用来对整个矩阵或者数组进行操作。不管是什么类型的数据,所有的额MATLAB变量都是数组。矩阵是常用于线性代数的二维数组。

    1.数组的创建

    • 在一个单行中创建一个拥有四个元素的数组,其各个元素之间用逗号或者空格隔开。
      例如:
      a = [1 2 3 4]
      这种数组叫做单行矩阵(行向量)。
    • 创建一个多行矩阵,其各个行之间用分号隔开。
      例如:
      b = [1,2;3,4;5,6]
    • 还可以用函数来创建矩阵。
      例如:创建一个5行1列每一个元素都是0的列向量。
      z = zero(5,1)
      这里写图片描述

    2.矩阵和数组的操作

    • 在MATLAB中,允许用一个单一的运算或者函数对矩阵中所有的数据进行处理(操作)。

    例如:
    这里写图片描述

    • 如果要对矩阵进行转置,则使用单引号(‘)
      例如:a’
      这里写图片描述

    • 可以通过执行标准矩阵乘法,通过*运算符来计算内积。

    这是我自己的结果截图……很明显是不对滴~
    这里写图片描述

    然后下面是官网爸爸给的运行结果。
    这里写图片描述

    我们都知道,一个矩阵与它的逆矩阵相乘的结果的确应该等于单位矩阵。至于这里为什么不对,还希望各位大佬们能不吝赐教,大恩不言谢~

    这里要注意的是,p不是一个整数值矩阵,MATLAB存储数字是以浮点型存储的,真实值和它的浮点数在运算时有小小的不同,我们可以使用格式化命令,显示更多的小数位数。

    比如:
    format long
    p = a*inv(a)

    可以使用format short来重置到较短格式的使用。

    • x = a.*a用来表示对矩阵的每一个元素做平方操作。
      若需要对每一个元素做立方运算,则用x = a.^3(如图)

    这里写图片描述

    • 矩阵的扩充
      行方向上:A = [a,a]
      列方向上:A = [a; a]

      这里写图片描述

    • 复数
      复数由实部和虚部组成,它的虚部是-1的平方根。
      即sqrt(-1) = 0.0000 + 1.0000i
      一般用i或者j来代表复数的虚部部分。

    第三部分:数组的索引

    https://cn.mathworks.com/help/matlab/learn_matlab/array-indexing.html

    MATLAB中的每一个变量都是可以存储多个值的数组。如果想要使用数组中的某一个值,则需要用到索引。

    1.单个元素的索引

    从一个数组中索引某个元素一般有两种方法:
    第一种比较常见:数组名加要索引的元素所在的行和列,例如A(2,4) = 8。
    第二种不太常用:数组名加一个下标,该下标按列遍历。A(14) = 8。【这里不太好表达,上图吧~】

    这里写图片描述

    再多说一句,其实A(14)中的14表示按列数第14个元素!
    利用下标索引元素这种方式叫做线性索引
    注意:如果索引超出矩阵维度,MATLAB会报错。

    2.多个元素的索引
    引用数组的多个元素,使用冒号操作符m : n(m,n分别表示索引开始和结束的范围)

    例1索引第二列第1个元素到第3个元素。
    例2索引第三行全部元素

    这里写图片描述

    不难发现,索引行则将行数放在逗号前;索引列要将列数放在逗号后。

    另外,冒号运算符也可以帮助创建一组等距的矢量值,例如:
    B = 0:10:100
    —->B = 0 10 20 30 40 50 60 70 80 90 100
    输出一个从0到100步长为10的数组。

    第四部分:工作空间变量

    https://cn.mathworks.com/help/matlab/learn_matlab/workspace.html

    工作区包含你创建的变量或者从数据文件或其他程序导入到MATLAB中的变量。例如,我现在创建两个变量 :
    A = magic(4)
    B = rand(3,5,2)

    • 我们可以通过whos来看工作空间的内容。

    这里写图片描述

    • 工作区的变量在退出MATLAB后就不存在了。
      所以一般使用save myfile.mat命令来保存工作区变量以便以后使用。
      保存操作将当前工作文件夹中的工作区保存在一个压缩文件中,该文件的扩展名为.MAT,称为MAT文件。
    • 如果想要清空工作空间里的所有变量,则需使用clear命令
    • 使用load myfile.mat命令将MAT文件中的数据恢复到工作区

    第五部分:文本和字符

    https://cn.mathworks.com/help/matlab/learn_matlab/character-strings.html

    • 在处理文本时,将其中的字符序列用单引号括起来,可以将文本分配给变量。
      例如:myText = ‘Hello, world’;
    • 如果文本本身包括一个单引号,则在定义时使用两个单引号。
      例如:otherText = ‘You”re right’

    这里写图片描述

    同所有的MATLAB变量一样,上述创建的两个变量也都是数组,他们的数据类型是字符型。注意:字符数组也可以像数字数组那样用方括号括起来表示。

    • 要将数字转换成字符,就要用到函数。例如num2str()或者int2str()。

      这里写图片描述

    第六部分:函数调用

    https://cn.mathworks.com/help/matlab/learn_matlab/calling-functions.html

    MATLAB提供了大量函数来执行计算任务,函数相当于其他编程语言中的子程序或方法。
    例如求最大值的函数,max()。

    • 将输入参数用括号括起来,如果有多个参数,则将参数用逗号隔开。
      一般通过将函数值赋给某个变量这种方式来返回(输出)函数值,如果有多个输出参数,则需将它们用方括号括起来。
      例如:
      A = [1 3 5];
      [maxA,location] = max(A)

    这里写图片描述

    • 可以用单引号括住任何字符进行输入。
      例如:
      disp(‘hello world’)
      ===>输出 hello world

    disp()用来显示变量的内容,括号里可以是字符,结构体,矩阵等等,类似于c语言的printf()。


    • clc函数被用来清空命令行。

    第七部分:二、三维图

    https://cn.mathworks.com/help/matlab/learn_matlab/plots.html

    • 折线图

      (1) 画图

      x = 0:pi/1000:2*pi;
      y = sin(x);
      plot(x,y)

    这里x就用到了前面说到的索引。x表示0到2*pi之间步长为pi/100的值。
    二维图如下:

    这里写图片描述

    这里多说一下步长,步长决定了横轴取值的密集程度。下图是将步长改为pi/10之后的图像。

    这里写图片描述

    对比图中标记处不难发现,步长增大,图像的精确度变低,所以这里尽量保证步长足够小,使得x可以取到足够多的值

    (2) 坐标
    我们可以对横轴和纵轴分别命名,并对上述正弦图像加上标题。

    这里写图片描述

    (3)plot(x, y, ‘r–’)
    通过在图像函数中添加第三个输入参数,可以用红色虚线绘制与原来相同的变量。

    这里写图片描述

    其中第三个参数规定了线条的颜色、样式和标记的字符。(例如上例中的‘r–’表示红色虚线。)标记是指对每一个数据点用参数所给的标记形式进行表示。(例如’g:o’表示用‘o’连成一条绿色的线输出=.=我这个解释没谁了,讲不清楚还是上图吧…..)

    这里写图片描述

    这样的标记除了’o’,还有‘+’,‘*’等等。

    这时候你会发现,我们开始为第一个图定义的标题和标签不再显示在当前图形窗口中了。这是因为在默认情况下,重新调用一个绘图函数,MATLAB就会清除数据,重置轴和其他元素来准备新的绘图。
    若要将图添加到现有图形,使用hold命令即可。

    这里写图片描述

    在使用hold off或close the window命令之前,所有的图都会出现在当前的图形窗口中。

    • 3D图像

      3D图像通常用有两个参数的函数来定义一个曲面,z = f(x,y) 。
      对于z,首先使用meshgrid命令在函数定义域内创建若干(x,y)。

    这里写图片描述

    这里需要注意的是,在matlab中,.2代表0.2
    (-2:.2:2)表示在-2到2的区间上以0.2的长度为间隔的向量;

    当变量x是由向量、数组或隔开的点组成(如x=0:0.1:1)时,则后面有x变量的方程要加点 (.),例如:y=x.*exp(-x.*2)
    但是如果x是连续的变量,如syms x,则方程写成y=x*exp(-x*2)。

    • Subplots
      你可以用subplot函数在同一窗口的不同区域显示多个图像。
      subplots函数的前两个输入参数显示当前窗口每行每列的图像数量,第三个输入参数指定活动区域。例如,在图形窗口创建四个区域来分别输出图像。

    这里写图片描述

    mesh()生成由X,Y和Z指定的网线面,由C指定的颜色的三维网格图。

    第八部分:程序和脚本

    https://cn.mathworks.com/help/matlab/learn_matlab/scripts.html

    • 示例脚本(从均匀分布中生成随机数据并计算平均值。绘制数据和平均值。)
      用edit命令来创建脚本:
      edit plotrand
      这样就打开了一个叫plotrand.m的空文件,输入产生随机数向量的代码:
    n = 50;
    r = rand(n,1);
    plot(r)
    

    然后,添加代码在图中绘制水平线:

    m = mean(r);
    hold on
    plot([0,n],[m,m])
    hold off
    title('Mean of Random Uniform Data')
    

    在写代码过程中,可用(%)在代码之间添加注释。
    最后保存脚本,在命令行窗口输入plotrand运行脚本。

    这里写图片描述

    • 循环和条件语句
      在脚本中,可以循环使用部分代码,并且通过使用(for,while,if,switch等关键字)来执行这部分代码。
      例如,创建一个叫calcmean.m的脚本,利用for循环计算五个随机样本的平均数和总平均数。
    nsamples = 5;
    npoints = 50;
    
    for k = 1:nsamples
        currentData = rand(npoints,1);
        sampleMean(k) = mean(currentData);
    end
    overallMean = mean(sampleMean)

    现在,修改for循环,以便每次迭代时都可以查看结果。在运行脚本时,会先显示中间结果,再计算总体均值。

    for k = 1:nsamples
       iterationString = ['Iteration #',int2str(k)];
       disp(iterationString)
       currentData = rand(npoints,1);
       sampleMean(k) = mean(currentData)
    end
    overallMean = mean(sampleMean)
    
    calcmean

    在编辑器中,在calcmean.m的最后添加条件语句,使它根据不同的总体均值返回不同的信息。

    if overallMean < .49
       disp('Mean is less than expected')
    elseif overallMean > .51
       disp('Mean is greater than expected')
    else
       disp('Mean is within the expected range')
    end
    • 脚本位置
      MATLAB中,要运行脚本,文件必须位于当前文件夹或搜索路径中的文件夹中。
      默认情况下,MATLAB安装程序创建的MATLAB文件夹位于搜索路径上。如果要在另一个文件夹中存储和运行程序,需要将其添加到搜索路径中:在当前文件夹浏览器中选择文件夹,右键单击,然后选择“添加到路径”。

    第九部分:帮助和文档

    https://cn.mathworks.com/help/matlab/learn_matlab/help.html

    • 使用doc命令在单独的窗口中打开函数文档。

      doc mean

    • 键入左圆括号后暂停,MATLAB在命令窗口中就会显示函数提示(函数文档的语法部分)。

      mean(

    • 使用帮助命令后,在命令窗口中查看函数的简单用法概括。

      help mean

    以上就是MATLAB的基础入门知识,欢迎指正呦~

    展开全文
  • matlab上 2x2矩阵怎么减3x3矩阵、或者 告诉我算法原理 手动怎么减也可以
  • MATLAB实现巴特沃斯数字滤波器

    万次阅读 多人点赞 2019-08-03 10:07:35
    MATLAB实现巴特沃斯数字滤波器 MATLAB实现巴特沃斯数字滤波器 前因:因为要准备保研面试,今年暑假就重新把烂尾的项目捡起来了。 为了提取采集到的脑电信号中有用的部分,想用数字带通滤波器实现,浏览了很多帖子...

    MATLAB实现巴特沃斯数字滤波器

    前因:因为要准备保研面试,今年暑假就重新把烂尾的项目捡起来了。
    为了提取采集到的脑电信号中有用的部分,想用数字带通滤波器实现,浏览了很多帖子。要不是只有代码,没有注释;要不就是只有理论,没有代码。索性自己写一篇,方便回顾。

    1. 用↓观察频谱

    f=fftshift(fft(b));                  %b表示信号值data
    w=linspace(-512/2,512/2,length(b));  %根据奈奎斯特采样定理,512/2为最大频率
    plot(w,abs(f));                      %Hz为单位
    

    • k、Hz等纵坐标如何判断(5.同理)

    2. 频率转化

    Fs=512
    fp=0.5Hz - 50Hz
    fs=0.25Hz - 55Hz

    ///
    *Q:↑为何如此取值
    A:为防止频谱泄露,滤波器并非完全垂直截止,需过渡衰减

    在这里插入图片描述

    回归正题,然后将单位为‘Hz’的模拟频率转化为单位为‘rad’的数字角频率
    基础知识见本连接
    (wp,ws分别为数字滤波器的通带、阻带截止频率的归一化值。要求:0≤wp≤1,0≤ws≤1。
    1表示数字频率pi。)

    Fs=512;
    wp=[0.5*2*pi/Fs,50*2*pi/Fs];                %设置通带数字角频率
    ws=[0.25*2*pi/Fs,55*2*pi/Fs];                %设置阻带数字角频率
    

    再设置参数
    Rp=1; %通带最大衰减
    Rs=30; %阻带最小衰减

    *为何如此取值见 ↓
    在这里插入图片描述

    3. 巴特沃斯滤波器设计

    [N,Wn]=buttord(wp,ws,Rp,Rs,'s');        %求巴特沃斯滤波器阶数N和截止频率Wn
    %无论是高通、带通和带阻滤波器,在设计中最终都等效于一个截止频率为Wn的低通滤波器(我现在也不是很理解为啥是这样,毕竟我也是刚接触滤波器)
    fprintf('巴特沃斯滤波器 N= %4d\n',N);    %显示滤波器阶数
    [bb,ab]=butter(N,Wn,'s');               %求巴特沃斯滤波器系数,即求传输函数的分子和分母的系数向量
    b2=filter(bb,ab,b);                     %filter既能进行IIR滤波又能进行FIR滤波
    
    • 分子分母系数如何排列

    *阶数N越大,变化越剧烈
    *Wn是指低频、高频信号功率降低至 最大值的0.707倍(-3dB)或0.5倍的点(-6dB),即上下限截止频率 ↓
    Wn是指低频、高频信号功率降低一半的点,即上下限截止频率

    4. 观察滤波器频率响应

    W=-600:0.1:600;                             %设置模拟频率
    [Hb,wb]=freqz(bb,ab,W,Fs);                  %求巴特沃斯滤波器频率响应
    plot(wb,20*log10(abs(Hb)),'b');             %作图
    xlabel('Hz');
    ylabel('幅值/dB');
    
    • 所画频谱不正确,未明白fft()和fftshift(fft())的区别

    *值得一提的是
    freqs(b,a,w)是针对模拟滤波器求频率响应,输入信号w的单位为rad/s
    freqz()是针对数字滤波器,当freqz(…,N,Fs)时,输入信号w的单位为fs

    附官方说明

    5. 观察滤波后信号频谱

    f=fft(b2);                            %b2是滤波后信号
    w=linspace(-512/2,512/2,length(b2));  %根据奈奎斯特采样定理,512/2为最大频率
    plot(w,abs(f));
    

    最后
    附上可以参考的实验
    实验

    展开全文
  • matlab求逆序

    千次阅读 2018-07-18 00:31:27
    matlab求逆序 逆序概念: 因为没时间详细介绍逆序概念,上传图片仅作参考。 逆序数matlab代码: clc clear %author:猪猪侠 %date:2018-7-18 x=input('请输入数据');%输入数据 str=num2str(x);%转换...

                                                         matlab求逆序数

    逆序数概念:

    因为没时间详细介绍逆序数概念,上传图片仅作参考。

    逆序数matlab代码:

    clc
    clear
    %author:猪猪侠
    %date:2018-7-18
    x=input('请输入数据');%输入数据
    str=num2str(x);%转换字符串
    for i=1:length(str)%字符串长度
        r(i)=str2double(str(i));%再转换为双精度
    end
    if length(r)==1 %如果长度为1则逆序数为0
        disp('逆序数为');
        disp(0);
    else
         for j=2:length(r)
              s=find(r(1:j-1)>r(j))%查找逆序数的下标索引
              u(j)=length(s)%生成每个下标索引长度组成的数组u
             result=sum(u)%求和
         end
         disp('逆序数为');
         disp(result);
    end

    展开全文
  • matlab时域频域信号特征提取资料整合

    万次阅读 多人点赞 2019-09-28 15:31:44
    1 前言 最近在做一个项目,需要将声纳信号中的特征都提取出来进行分析。...1、首先,在特征提取之前需楼主明确是怎样的信号,怎样的应用,怎样的场景,因为针对不同应用和场景选择的特征提取也不近相同。 ...
  • MATLAB解方程组

    千次阅读 多人点赞 2019-01-21 23:13:17
    解单一方程 S=solve(eqn,var) 解等式eqn关于自变量var的解。...计算eqn在区间[a,b][a,b][a,b]上的解,但是只能是不能含有符号参数。 解方程组 Y=solve(eqns,vars) eqns是方程组的符号向量,即[e...
  • MATLAB中小数位数的设置方法

    万次阅读 2018-08-07 13:55:18
    format并不影响matlab如何计算和存储变量的值。对浮点型变量的计算,即单精度或双精度,按合适的浮点精度进行,而不论变量是如何显示的。对整型变量采用整型数据。整型变量总是根据不同的类(class)以合适的数据位...
  • MATLAB取整及位数

    千次阅读 2019-10-26 19:54:47
    Matlab取整函数: fix, floor, ceil, round 函数 操作 Y = fix(X) 向零取整 Y = floor(X) 向下取整 Y = ceil(X) 向上取整 Y = round(X) 四舍五入取整 Y = fix(X)将 X 的每个元素朝零方向四舍五入为...
  • matlab时频分析之短时傅里叶变换 spectrogram

    万次阅读 多人点赞 2019-03-22 15:50:25
    matlab时频分析之短时傅里叶变换 spectrogram 短时傅里叶变换常用于缓慢时变信号的频谱分析,可以观察沿时间变化的频谱信号。 其优点如下图所示,弥补了频谱分析中不能观察时间的缺点,也弥补了时域分析不能获取频率...
  • 如何使用matlab实现分段函数

    万次阅读 多人点赞 2018-10-09 20:39:13
    # 当只有一个输出参数时,返回一个行向量,该行向量的第一个元素是矩阵的行数,第二个元素是矩阵的列; ans = 1 401 B = zeros ( n ) # 生成n×n全零阵; B = zeros ( m , n ) # 生成m×n全零阵;...
  • Matlab计算熵权法

    万次阅读 多人点赞 2018-09-01 20:32:44
    Matlab计算熵权法
  • matlab中读取每一行列不同的txt

    千次阅读 2020-01-15 08:55:23
    有时候matlab中需要读取txt中多行数据,但是没一行的列不同,可以使用下面代码: fid=fopen('test.txt'); while ~feof(fid) tline = fgetl(fid); S=regexp(tline,'\s+','split'); if isempty(tline) ...
  • MATLAB常见的读取加载数据文件都是用load 、importdata之类比较多,该类方法多局限于文件数据每一行的列都是相等的; 但是如果遇到的数据文件前面N行数据是英文或中文,剩下的是列相等的数据,那这类导入方法...
  • MATLAB互相关系

    千次阅读 2019-05-02 18:12:45
    MATLAB的使用 需要测量天津大爆炸的地震波形,小白不懂的怎么用MATLAB啊,真的是从来都没有接触过,求路过大神帮个忙,需要写一个关于计算互相关系的程序,真的着急 提前谢过了!! ...
  • MATLAB 在一个数组中随机选择n个

    万次阅读 2020-08-19 14:49:59
    MATLAB 中在一个数组内随机选择n个。 例如:在 A = [10, 50, 80, 100, 130, 260] 中随机选择5个。 允许重复: n = 5; A = [10, 50, 80, 100, 130, 260]; random_num = A(randi(numel(A),1,n)); random_num = ...
  • matlab代码实现分形维计算

    热门讨论 2013-11-30 12:51:03
    此代码是matlab程序可以很方便的实现二值图像分形维的计算。
  • MATLAB希尔伯特黄变换HHT

    万次阅读 热门讨论 2019-07-23 20:19:16
    这两天在学习希尔伯特黄变换,也就是HHT,趁着学习的劲赶紧整理整理,用的是MATLAB进行编程,所用到的工具箱便是EMD工具箱,链接如下,请自行下载。 https://download.csdn.net/download/arry_w/11421533 首先先...
  • matlab数字和字符串转换

    万次阅读 多人点赞 2019-05-19 21:11:51
    一、数字转字符串 1、整数转字符串 int1 = 10; num2str(int1) ...num2str(dec1,6) %保留6位有效 (2)方法2 num2str(dec1,'%.6f') %保留小数点后6位 二、字符串转数字 1、整数 str1 = ...
  • 图像入门:MATLAB图像识别

    万次阅读 多人点赞 2018-07-08 15:25:14
    初学数字图像处理,做一个练习,识别图中的图形形状,颜色,位置,面积,周长f=imread('C:\Users\QHJ\Desktop\demo.png'); f=f(:,:,3); f=histeq(f,256); %增强对比度 f=im2bw(f,0.386); rowhigh=102+276-1;...
  • MATLAB 2018b 安装与简介

    万次阅读 多人点赞 2019-02-18 13:07:00
    matlab2018b安装教程 该版本是mathworks官方开发的新版本的商业数学软件,可以帮助用户不仅仅将自己的创意停留在桌面,还可以对大型数据集运行分析,并扩展到群集和云。另外matlab代码可以与其他语言集成,使您...
  • MATLAB GUI界面编程——一些细节问题

    万次阅读 多人点赞 2019-01-06 22:59:58
    另外,需要声明的是,我所使用的MATLAB版本——MATLAB R2017a。 目录 一、使用MATLAB的GUIDE开发环境,来快速创建GUI界面 二、修改MATLAB GUI的.fig和.m文件名 三、修改MATLAB GUI界面的名字 四...
  • MATLAB矩阵生成

    万次阅读 多人点赞 2017-01-10 16:23:00
    MATLAB矩阵生成
  • matlab的input函数总结

    万次阅读 多人点赞 2019-02-20 15:49:52
    input函数 ...其实说白了,和基本上所有语言都是一样的,语法就是下面这样 x = input(prompt) %输入的东西当成数字或者矩阵 str = input(prompt,‘s’) %输入的东西当成字符串存起来 x = input(“what”) ...
  • matlab低通滤波

    万次阅读 多人点赞 2018-04-16 21:02:49
    所以低通滤波的效果是图像去噪声平滑增强,但同时也抑制了图像的边界,造成图像不同程度上的模糊。大于大小为M×N的图像,频率点(u,v)与频率中心的距离为D(u,v),其表达式为:1. 理想低通滤波器产生公式为:...
  • MATLAB计算分形盒维的方法

    热门讨论 2011-02-27 15:52:00
    利用MATLAB编程实现分形中计盒维的方法。
  • Matlab】简单的滑模控制程序及Simulink仿真

    万次阅读 多人点赞 2019-11-17 23:06:09
    最近开始了对滑模控制的学习,使用的书籍为刘金琨的《滑膜变结构控制MATLAB仿真》,今天是按照书上的例程做了一个简单的自适应控制系统。 2.程序解析 此程序中,电机控制系统的动态模型为: ,其中,θ为电机的角...
  • 以上是BP神经网络的相关介绍,BP神经网络适用于大样本数据的预测,至于小样本还有灰色理论、最小二乘支持向量机、广义回归神经网络、灰色神经网络,不同的数据需要根据其自身特点选择不同的预测方法。在很多次实验...
  • matlab判断回文的两种思路

    千次阅读 2019-09-03 10:05:18
    今天有人问我怎么用matlab判断回文,我给出以下几个思路 思路一:利用数学模型判断 %author:zhuweijie_猪猪侠 %date:2019/09/03 %E-mail:2377389590@qq.com %回文 %根据数学模型判断是不是回文 function ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 120,644
精华内容 48,257
关键字:

matlab选择不同的数

matlab 订阅