Matlab
Code_Easy
这个作者很懒,什么都没留下…
展开
-
Matlab 匿名函数利用空矩阵传递参数
b = 2;c = 3.5;x1 = fzero(@(x) cubicpoly(x,b,c),0)x2 = fzero(@cubicpoly,0,[],b,c)function y = cubicpoly(x,b,c)y = x^3 + b*x + c;end两种方法的输出内容一致。x1 = -1.094475926784920e+00x2 = -1.094475926784920e+00匿名矩阵的传递参数的思路是再次定义一个函数,将参数传入。第一种方法比较传原创 2021-04-12 00:20:06 · 604 阅读 · 0 评论 -
Matlab Cholesky出错算例
调用chol函数出错对于矩阵 AA = [0.957166948 0.421761283 0.655740699 0.6557406990.485375649 0.915735525 0.035711679 0.0357116790.800280469 0.79220733 0.849129306 0.8491293060.141886339 0.959492426 0.933993248 0.933993248];A的第3 4 列相同,所以A显然是奇异的,不能进行原创 2021-04-02 17:50:31 · 620 阅读 · 0 评论 -
Matlab 绘制圆环,并且填充颜色
设置圆心设置内外半径设置填充颜色[r g b],分量都是0到1的数值利用patch命令绘制圆环设置线型为黑色,填充透明度为1效果如下:原创 2020-12-30 15:13:44 · 9383 阅读 · 3 评论 -
Matlab向量化再探
一个向量化例子之前的观点是Matlab的向量化的计算效率比for循环高。.今天考察一个例子,计算10000个随机数相加, 平台是Matlab 2018b。先说结论:进行预定义矩阵尺寸的for循环并且减少循环中的重复计算的情况下,效率比自带函数的效率要高。从此看出,提高效率的关键在于定义矩阵尺寸,而向量化不能有效的提高计算速度。计算结果:直接for循环: 0.002595 seconds预定义数组for循环时间: 0.001345 seconds预定义数组for循环,计算好变量时间: 0.0原创 2020-06-12 14:33:09 · 411 阅读 · 0 评论 -
Matlab函数mink maxk topkrows(R2017b)
顾名思义,这三个函数分别是求最小的k个值,最大的k个值以及最大k行。这几个函数的功能在实际编程过程中会经常遇到。恰当的使用他们可以简化代码。由于是内置函数,可以使用Matlab JIT加速,这比自己编写的程序运行速度会高效一点。以下是调用格式:B = mink(A,k)B = mink(A,k,dim)B = maxk(A,k)B = maxk(A,k,dim)B = topk...原创 2019-04-13 07:58:10 · 2505 阅读 · 0 评论 -
[数值分析] 利用QR分解求解最小二乘法的原理
当方程阶数较大的时,法方程的条件数变得非常大,需要使用QR分解来求解。原创 2019-04-17 08:50:28 · 3287 阅读 · 0 评论 -
Maple Matlab计算svd结果的差异
利用maple算的结果:A = [2 1; 4 3; 5 2];[U,S,V] = svd(A)可以看出Maple输出的是V的转置,而Matlab输出的是V。实际计算的时候要注意这个差异。原创 2019-04-17 16:07:18 · 564 阅读 · 1 评论 -
SVD与线性代数4个基本子空间的关系
Strange线性代数的最重要的一课,四个基本子空间可以通过SVD完美的展现。以下内容会逐步完善。A=USVTA=USV^TA=USVT, 假设 rank(A)=rrank(A)=rrank(A)=r行空间R(A)=C(AT)R(A)=C(A^T)R(A)=C(AT) : V(1:r,:)V(1:r,:)V(1:r,:);行空间零空间N(A)N(A)N(A) : V(r+1:n,:)V(...原创 2019-04-17 18:32:17 · 1505 阅读 · 0 评论 -
Matlab函数linspace一点记录
Matlab 函数linspace 一点记录官方定义:产生均匀分布的点。调用格式:y = linspace(x1,x2,n)。默认参数:产生100个均匀分布的点。在最近研究过程中,被这个函数摆了一道。其实是自己下意识导致的错误。在n取较大值的时候,程序不会出错。我的错误在于认为 n=1n=1n=1 的时候:a = linspace(0.5 , 1.5, 1) 会产生均值 a = 1...原创 2019-09-27 17:19:24 · 829 阅读 · 1 评论 -
机器学习001—生成训练集和测试集
加数据分成训练集和测试集:传统处理方法,利用ranperm生成随机的编号,取前面百分比的数据作为训练集,余下的作为测试集。代码如下:num_points = size(X,2);split_point = round(num_points*0.7);seq = randperm(num_points);X_train = X(:,seq(1:split_point));Y_tra...原创 2019-04-12 21:58:31 · 1863 阅读 · 0 评论 -
MATLAB如何标注一个向量-程序
将一个向量每个数据值标注在相应的坐标上。M = cumsum(rand(10,2) - 0.5);x = 1:size(M,1);plot(x, M(:,1), 'b.-', x, M(:,2), 'g.-')legend('M1', 'M2')for i=x text(i+0.1, M(i,1), sprintf('%.2f', M(i,1)), 'FontSize',7, '...原创 2019-04-12 18:13:43 · 1381 阅读 · 0 评论 -
Matlab 2016b以后新的script功能,可以直接输入function
在2016b版本以后,可以和python一样在script中直接插入函数。这样方便在一个文件内进行调试,非常方便。注意:这个模式下定义function,必须要利用function… end来定义。% Compute the value of the integrand at 2*pi/3.x = 2*pi/3;y = myIntegrand(x)% Compute the area ...原创 2019-03-20 14:56:33 · 1168 阅读 · 0 评论 -
MATLAB unifrnd 与 rand函数的区别
MATLAB unifrnd 与 rand函数的区别相同点:二者都是利用rand函数进行随机值计算。二者都是均匀分布。不同点:unifrnd是统计工具箱中的函数,是对rand的包装。rand函数可以指定随机数的数据类型。下面是unifrnd源代码,可以看出该函数可以通过指定参数进行计算。function r = unifrnd(a,b,varargin)%UNIFRND ...原创 2019-04-08 23:07:48 · 9015 阅读 · 0 评论 -
Matlab 主成分分析函数pcacov代码剖析
调用格式:[coeff,latent,explained] = pcacov(V)这个函数针对已经求出的协方差矩阵进行计算。要结合cov函数才能进行完整的pca分析。这个函数可以查看源代码,并且清晰明了的展示了计算过程。输出变量:-coeff: 特征向量(注意与pca函数的变量score进行区分);-latent: 特征值;[~,latent,coeff] = svd(v); 其实...原创 2019-04-15 16:46:44 · 14937 阅读 · 2 评论 -
Matlab 如何从pca分析结果重构数据
pca的目的就是对数据进行降维。对于已经利用pca函数求得的结果,如何利用这些信息对进行数据的重构,进而求出重构后的误差是很重要的。具体重构过程:利用pca进行求解,得到coeff,score,latent;[coeff,score,latent] = pca(___)-关键就在于这里的score。通过查看pca函数的源代码可知score = X*coeff.即将数据映射到pca空间后的...原创 2019-04-15 17:07:22 · 4190 阅读 · 0 评论 -
利用Matlab坐标轴得到漂亮的图-2
利用Matlab绘制出一条公交线路22个站点的一天内的上客总人数。下图中红色圆圈表示人数多少。用到的函数:(2018b引入) 利用duration生成时间向量,利用 xline xticks(2016b) xticklabels(2016b) 对时间刻度进行标注。...原创 2019-04-15 17:30:04 · 394 阅读 · 0 评论 -
Matlab decomposition函数的使用(R2017b引入)
decomposition可以创建一个可重复使用的分解,例如LU,LDL,QR等使得求解Ax=b更加高效。例如:dA = decomposition(A) % dA\b % 与普通求解方程通用的调用格式可以得到与A\b相同的结果,但是这样求解速度更快。对于需要重复求解的情况,这样的操作更加提高计算效率。dA的使用方式:转置: dA'乘以负数 -dA乘以系数 c*dA 或者dA...原创 2019-04-12 14:20:45 · 2075 阅读 · 0 评论 -
Matlab stackplot函数(R2018b引入)
这个函数对于初始查看数据的时候有帮助。可以绘制相同x轴的不同y轴的数据。可以在数据中选择几组数据利用相同的y轴。原创 2019-04-12 14:30:25 · 3015 阅读 · 0 评论 -
Matlab lsqminnorm(R2017b引入)
– 线性方程Ax=b的最小范数解。主要就是要注意改函数的解与A\b的不同。不需要求解pinv来得到方程的解。对于inconsistent方程组求解,有以下实例:求解不定方程2x1+3x2=82x_1+3x_2=82x1+3x2=8。利用blackslash求解。A = [2 3];b = 8;x_a = A\bx_a = 2×1 02.6667调用 lsq...原创 2019-04-12 14:46:52 · 4112 阅读 · 0 评论 -
利用Matlab坐标轴得到漂亮的图-1
利用Matlab坐标轴得到漂亮的图效果图代码注释效果图代码clc;close all%figure('position',[300 200 700 400]); hold on; box on% 画图命令x=-5:0.1:5;y=log(abs(x));plot(x,y,'k-','linewidth',2);grid ontitle('Sample')% 设置坐标轴...原创 2019-04-05 09:45:00 · 608 阅读 · 0 评论