精华内容
下载资源
问答
  • 前言我是遥感专业,专职遥感图像处理 ,我们知道遥感影像就是一个个数组,或者说矩阵,所以说对影像操作就是对数组操作,所以学习数组的用法极为重要。我们知道C++中的return只能返回一个数值,而不能返回一个数组,...

    前言

    我是遥感专业,专职遥感图像处理

    1a22182a26b1541eb43cd96d23bdf473.gif ,我们知道遥感影像就是一个个数组,或者说矩阵,所以说对影像操作就是对数组操作,所以学习数组的用法极为重要。我们知道C++中的return只能返回一个数值,而不能返回一个数组,我这个程序主要就是通过指针,来实现返回数组(实际上返回的是指针)。

    代码

    /*

    作者:山科_xxin

    时间:2017-03-14 23:27:40

    功能:生成一个自定义行列号的数组,返回数组,遍历数组

    类别:C++练习

    */

    #include

    #include

    #include

    using namespace std;

    int **random(int n,int m)

    {

    int t;

    int **data;

    t = time(0);

    srand(t);

    data=(int **)malloc(n*sizeof(int *));

    for (int i=0;i

    data[i]=(int *)malloc(2*sizeof(int));

    for(int i = 0;i

    {

    for(int j = 0;j

    {

    data[i][j] = rand()%10;

    }

    }

    return data;

    }

    int visit(int **data,int n,int m)

    {

    for(int i = 0;i

    {

    for(int j = 0;j

    cout<

    cout<

    }

    return 0;

    }

    int main()

    {

    int n,m;

    cout<

    cin>>n;

    cin>>m;

    int **data = random(n,m);

    visit(data,n,m);

    free(data);

    system("pause");

    return 0;

    }

    结果:

    f6fe471ec1179f4ee021a9cc2be98f86.png

    后语

    本人博客几乎把所有免费的光学影像处理了一遍,包括但不限于高分一号、四号;环境小卫星;landsat系列;哨兵2;MODIS数据,接下来将主攻编程,C++主线,Python、IDL(ENVI二次开发)、Matlab。爱拼才会赢,愿明天更美好!!!

    xxin blog , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C++生成一个随机二维数组并作为参数返回!

    展开全文
  • 本篇文章主要讲解在matlab环境下,如何随机生成满足高斯分布的样本点。  众所周知,高斯分布是一种很常见的数据分布,也是很多实际例子中出现最多的一种分布。我们今天就来学习在matlab环境下绘制出随机分布的满足...

           本篇文章主要讲解在matlab环境下,如何随机生成满足高斯分布的样本点。

           众所周知,高斯分布是一种很常见的数据分布,也是很多实际例子中出现最多的一种分布。我们今天就来学习在matlab环境下绘制出随机分布的满足高斯分布的数据点。

           1.二维空间二分类问题

    %%参数设置
    mean = [2 3];   %%均值
    SIGMA = [1 0;0 2];  %%协方差矩阵,假设各维度独立,故可设为对角阵
    r = mvnrnd(mean,SIGMA,100);  %%最后一个参数表示生成该类100个样本点
    plot(r(:,1),r(:,2),'r+'); 
    grid on;               %%描绘出网格
    hold on;               %%停留在图中,
    mean = [4 2];
    SIGMA = [1 0;0 2];
    r2 = mvnrnd(mean,SIGMA,100);
    plot(r2(:,1),r2(:,2),'b*')
    grid on;

           运行结果:


    以上很多都是绘图的一些基本命令,最重要的是mvnrnd(mean,SIGMA,100)这个函数,第一个参数表示随机生成的样本点的均值,第二个参数表示这些样本点的协方差矩阵,我们可以假设各维度相互独立,也就是设为对角阵(只有主对角线上的元素不为0),第三个参数100表示生成100个样本点。plot就是绘制图像的函数,前两个参数分别对应的是样本点的第一维和第二维的值,而第三个参数表示'r+',用红色的+标记。那么我们可用的颜色和标记符号有哪些呢? 请参照下面这张图就好了。




              2.二维空间三分类问题

    mean = [2 3];   %%均值
    SIGMA = [1 0;0 2];  %%协方差矩阵,假设各维度独立,故可设为对角阵
    r = mvnrnd(mean,SIGMA,100);  %%最后一个参数表示生成该类10个样本点
    plot(r(:,1),r(:,2),'r+'); 
    grid on;               %%描绘出网格
    hold on;               %%停留在图中,
    mean = [7 8];
    SIGMA = [1 0;0 2];
    r2 = mvnrnd(mean,SIGMA,100);
    plot(r2(:,1),r2(:,2),'b*')
    grid on;
    hold on;
    mean = [4 6]
    SIGMA = [1 0;0 4];
    r3 = mvnrnd(mean,SIGMA,100);
    plot(r3(:,1),r3(:,2),'gs')

            运行结果:



          3.三维三分类问题

    mean = [2 3 4];   %%均值
    SIGMA = [1 0 0;0 2 0;0 0 3]  %%协方差矩阵,假设各维度独立,故可设为对角阵
    r = mvnrnd(mean,SIGMA,10);  %%最后一个参数表示生成该类10个样本点
    plot3(r(:,1),r(:,2),r(:,3),'r+'); 
    grid on;               %%描绘出网格
    hold on;               %%停留在图中,
    mean = [7 8 9];
    SIGMA = [1 0 0;0 2 0;0 0 4];
    r2 = mvnrnd(mean,SIGMA,10);
    plot3(r2(:,1),r2(:,2),r2(:,3),'b*')
    grid on;
    hold on;
    mean = [4 8 13]
    SIGMA = [1 0 0;0 2 0;0 0 4];
    r3 = mvnrnd(mean,SIGMA,10);
    plot3(r3(:,1),r3(:,2),r3(:,3),'gs')

            结果:


           这里需要注意的是,绘制三维图像时,与二维平面图唯一的区别是plot函数,变成了plot3函数,参数的个数也增加了一维度。

           如有问题,欢迎私信和QQ交流~

    展开全文
  • 本篇文章主要讲解在matlab环境下,如何随机生成满足高斯分布的样本点。众所周知,高斯分布是一种很常见的数据分布,也是很多实际例子中出现最多的一种分布。我们今天就来学习在matlab环境下绘制出随机分布的满足高斯...

    本篇文章主要讲解在matlab环境下,如何随机生成满足高斯分布的样本点。

    众所周知,高斯分布是一种很常见的数据分布,也是很多实际例子中出现最多的一种分布。我们今天就来学习在matlab环境下绘制出随机分布的满足高斯分布的数据点。

    1.二维空间二分类问题

    %%参数设置

    mean = [2 3]; %%均值

    SIGMA = [1 0;0 2]; %%协方差矩阵,假设各维度独立,故可设为对角阵

    r = mvnrnd(mean,SIGMA,100); %%最后一个参数表示生成该类100个样本点

    plot(r(:,1),r(:,2),'r+');

    grid on; %%描绘出网格

    hold on; %%停留在图中,

    mean = [4 2];

    SIGMA = [1 0;0 2];

    r2 = mvnrnd(mean,SIGMA,100);

    plot(r2(:,1),r2(:,2),'b*')

    grid on;

    运行结果:

    以上很多都是绘图的一些基本命令,最重要的是mvnrnd(mean,SIGMA,100)这个函数,第一个参数表示随机生成的样本点的均值,第二个参数表示这些样本点的协方差矩阵,我们可以假设各维度相互独立,也就是设为对角阵(只有主对角线上的元素不为0),第三个参数100表示生成100个样本点。plot就是绘制图像的函数,前两个参数分别对应的是样本点的第一维和第二维的值,而第三个参数表示'r+',用红色的+标记。那么我们可用的颜色和标记符号有哪些呢? 请参照下面这张图就好了。

    2.二维空间三分类问题

    mean = [2 3]; %%均值

    SIGMA = [1 0;0 2]; %%协方差矩阵,假设各维度独立,故可设为对角阵

    r = mvnrnd(mean,SIGMA,100); %%最后一个参数表示生成该类10个样本点

    plot(r(:,1),r(:,2),'r+');

    grid on; %%描绘出网格

    hold on; %%停留在图中,

    mean = [7 8];

    SIGMA = [1 0;0 2];

    r2 = mvnrnd(mean,SIGMA,100);

    plot(r2(:,1),r2(:,2),'b*')

    grid on;

    hold on;

    mean = [4 6]

    SIGMA = [1 0;0 4];

    r3 = mvnrnd(mean,SIGMA,100);

    plot(r3(:,1),r3(:,2),'gs')

    运行结果:

    3.三维三分类问题

    mean = [2 3 4]; %%均值

    SIGMA = [1 0 0;0 2 0;0 0 3] %%协方差矩阵,假设各维度独立,故可设为对角阵

    r = mvnrnd(mean,SIGMA,10); %%最后一个参数表示生成该类10个样本点

    plot3(r(:,1),r(:,2),r(:,3),'r+');

    grid on; %%描绘出网格

    hold on; %%停留在图中,

    mean = [7 8 9];

    SIGMA = [1 0 0;0 2 0;0 0 4];

    r2 = mvnrnd(mean,SIGMA,10);

    plot3(r2(:,1),r2(:,2),r2(:,3),'b*')

    grid on;

    hold on;

    mean = [4 8 13]

    SIGMA = [1 0 0;0 2 0;0 0 4];

    r3 = mvnrnd(mean,SIGMA,10);

    plot3(r3(:,1),r3(:,2),r3(:,3),'gs')

    结果:

    这里需要注意的是,绘制三维图像时,与二维平面图唯一的区别是plot函数,变成了plot3函数,参数的个数也增加了一维度。

    如有问题,欢迎私信和QQ交流~

    展开全文
  • 数值分析Matlab二维正态(高斯)分布以及协方差矩阵主要是使用了matlab的mvnrnd产生随机的正态(高斯)分布二维矩阵,然后绘制出来。代码运行结果生成的正态分布实验数据如图:MATLAB代码:mu1 = [0 0]; sigma1 = [4 2...
    数值分析Matlab二维正态(高斯)分布以及协方差矩阵


    主要是使用了matlab的mvnrnd产生随机的正态(高斯)分布二维矩阵,然后绘制出来。代码运行结果生成的正态分布实验数据如图:




    MATLAB代码:
    mu1 = [0 0];
    sigma1 = [4 2 ; 2 4];
    r1 = mvnrnd(mu1,sigma1,100);
    scatter(r1(:,1),r1(:,2),'r.');
    hold on;
    
    mu2 = [0 0];
    sigma2 = [8 2 ; 2 8];
    r2 = mvnrnd(mu2,sigma2,100);
    plot(r2(:,1),r2(:,2),'bv')

    代码中的sigma即为协方差矩阵。mu期望均值。围绕mu产生正态分布的数据。mvnrnd使用到了协方差矩阵。

    关于协方差矩阵

    样本数据矩阵的每行是一个样本,每一列是一个维度。一个样本可以有多维。如果协方差值为正,样本数据在不同维度同向。值越大,说明样本在不同维度的数值同向程度越高。越小,同向程度越低。
    如果协方差为负值,说明样本数据在不同维度反向。其值越小,反向程度越大;其值越大,反向程度越小。
    比如x,y,z代表了3 X 3的样本矩阵。其中每一列代表一个维度。那么协方差矩阵为:





    显然,协方差矩阵上,从左上角到右下角连接的对角线上的点是所在列的方差,其非对角线列上的点是相应列上的数据散点的协方差,且具有对称相等特性:


    展开全文
  • 二者均是常用的二维差值方法,两者的区别是,interp2的插值数据必须是矩形域,即已知数据点(x,y)组成规则的矩阵,或称之为栅格,可使用meshgid生成。而griddata函数的已知数据点(X,Y)不要求规则排列,特别是对试验...
  • % 生成网格点,然后转换为二维数组 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矩阵拼接

    千次阅读 2019-08-26 22:26:13
    %随机生成维矩阵 现在要在矩阵A增加一行,假设增加矩阵B B=[1 2 3]; 方法有三种 方法一 A=[A;B]; 方法 A = cat(1, A, B) 现在要在矩阵A增加一列,假设增加矩阵C C=[1;2;3]; A=[A,C]; ...
  •  (2)eye() -- 单位矩阵,不支持二维以上的矩阵生成  (3)rand() -- 随机矩阵,只用于生成0~1的平均分布的随机数,不包括0和1  (4)compan() -- 伴随矩阵,只适用于向量  (5)magic()...
  • matlab二维插值--interp2与griddata

    千次阅读 2012-05-11 16:10:46
    二者均是常用的二维差值方法,两者的区别是,interp2的插值数据必须是矩形域,即已知数据点(x,y)组成规则的矩阵,或称之为栅格,可使用meshgid生成。而griddata函数的已知数据点(X,Y)不要求规则排列,特别是对...
  • 首选随机用A=randn(2,2)+randn(2,2)*1i生成一个二维的复数矩阵, 执行后结果如下: A = 3.5784 + 0.7254i -1.3499 + 0.7147i 2.7694 - 0.0631i 3.0349 - 0.2050i 执行:A' 得到如下 >> A' ans = 3....
  • 复杂网络实验1:ER随机图(matlab

    千次阅读 2019-03-28 14:29:29
    2.创建点位置二维矩阵 3.生成圆形的形状,把圆形分成N份,给点赋值 4.每个点之间以一定概率形成边 二.版本2(有邻接矩阵) 鉴于一些朋友需要有邻接矩阵的版本,后面再添加有邻接矩阵的版本 由于我这里不需要...
  • 二维插值

    万次阅读 2017-08-30 20:45:22
    二者均是常用的二维差值方法,两者的区别是,interp2的插值数据必须是矩形域,即已知数据点(x,y)组成规则的矩阵,或称之为栅格,可使用meshgid生成。而griddata函数的已知数据点(X,Y)不要求规则排列,特别是对...
  • C语言生成随机可逆方阵

    千次阅读 2016-05-24 00:10:54
    1.前言 最近做并行计算作业的时候有一道题是让用并行的方式对一个矩阵求逆,这个实验的大致步骤是将一个写好的矩阵文件(一定格式)作为输入,使用...关于数据集这件事儿,大神们纷纷使用MATLAB造出了随机二维数组文件
  • 浅谈协方差矩阵

    2021-04-14 20:13:50
    三、协方差矩阵 前面提到的猥琐和受欢迎的问题是典型的二维问题,而协方差也只能处理二维问题,那维数多...首先,随机生成一个10*3维的整数矩阵作为样本集,10为样本的个数,3为样本的维数。 根据公式,计算协方差
  • 13.3.2 二维小波变换的图像压缩 13.3.3 图像压缩中阈值的确定与作用命令 13.3.4 基于小波包变换的图像压缩 13.3.5 小波变换用于图像去噪 13.3.6 小波分析用于图像增强 13.3.7 图像钝化与锐化 13.3.8 ...
  • 利用matlab实现FCM算法,算法最终返回距离类中心,和每个样本对于不同类的隶属度矩阵。同时,使用随机生成的100个二维数据,进行算法程序的检验,给出具体的迭代次数和目标函数值,以及聚类的结果图。
  • MATLAB基础知识1

    2019-04-13 20:03:07
    二维数组,如a=rand(6,6)即为66的数组,值为随机且在0-1之间;多维数组由多个二维数组组成,如a=rand(3,4,3)即3行4列,有3个这样的平面 2.向量 生成方式一:行向量可以用空格或者逗号隔开,...
  • 精通matlab6.5

    2010-04-07 10:27:34
    2.5 二维数组的子数组寻访和赋值 2.6 执行数组运算的常用函数 2.7 数组运算的矩阵运算 2.8 多项式的表达方式及其操作 2.9 标准数组生成函数和数组操作函数 2.10 数组构作技法综合 2.11 高维数组 2.12 “非数”和“空...
  • 17.2二维分形维数的MATLAB应用 17.3分形插值算法的MATLAB应用 本章小结 第18章经济金融最优化应用 18.1期权定价分析 18.2收益、风险和有效前沿的计算 18.3投资组合绩效分析 18.4固定收益证券的久期和...
  • 2.5 二维数组的子数组寻访和赋值 2.6 执行数组运算的常用函数 2.7 数组运算的矩阵运算 2.8 多项式的表达方式及其操作 2.9 标准数组生成函数和数组操作函数 2.10 数组构作技法综合 2.11 高维数组 2.12 “非数...
  • Matlab基础刻意练习

    2019-10-26 09:13:55
    i、j、k…为一维、二维、三维…下标索引值。通常i称行,j称列;k称页。 1.多维数组的创建 (1)多维数组的创建可以通过直接赋值来取得。 例:设置三维矩阵A,第1页为magic(3),第2页为vander([1,2,3]),第3页为pascal...
  • matlab2019a

    2019-04-16 11:32:01
    boundaryshape 函数:通过二维三角剖分创建 polyshape 对象 polyshape 对象:创建 polyshape 时,指定何时保持共线点 RandStream 对象:使用 Threefry 和 Philox 算法生成随机数字 GraphPlot 对象:通过字体属性...
  • MATLAB简单的图像处理

    2018-03-13 21:57:38
    %生成10*10的随机矩阵 A(3:5,5:7)=0;%3到5行,5到7列置位0; B=A';%求A的转置 %裁剪 A(2,:)%提取A的第行 A(:,2)%提取A的第列 x**%% 2、冒泡法实现将10个元素的排序** clc; clear all; a=[3,2,4,1,6
  • 二者均是常用的二维差值方法,两者的区别是,interp2的插值数据必须是矩形域,即已知数据点(x,y)组成规则的矩阵,或称之为栅格,可使用meshgid生成。而griddata函数的已知数据点(X,Y)不要求规则排列,特别是对...
  • 3.4.1 plot 绘制二维图像/82 3.4.2 坐标轴设置函数/83 3.4.3 subplot 同一窗口分区绘图/88 3.4.4 figure/hold 创建窗口/图形保持/88 3.4.5 semilogx/semilogy 单对数坐标图/89 3.4.6 contour/ clabel 曲面等高线/...
  • %生成一个元素在0,1之间均匀分布的随机矩阵R B(I,J)=A(I,J)*sin(R*2*pi);%平滑函数的傅里叶变换谱 A(I,J)=A(I,J)*cos(R*2*pi); F(I,J)=A(I,J)+j*B(I,J); end End%限制振幅的动态范围,提高编码的精度 F=fft2(F);%...
  • 13.3.2 二维小波变换的图像压缩 13.3.3 图像压缩中阈值的确定与作用命令 13.3.4 基于小波包变换的图像压缩 13.3.5 小波变换用于图像去噪 13.3.6 小波分析用于图像增强 13.3.7 图像钝化与锐化 13.3.8 ...

空空如也

空空如也

1 2 3
收藏数 42
精华内容 16
关键字:

matlab生成二维随机矩阵

matlab 订阅