基础算法matlab

2023-11-16

常用算法

knn

% clc
% close all
% clear
training = [mvnrnd([2 2],eye(2),50);mvnrnd([-2 -2],2*eye(2),50);mvnrnd([-2 -2],2*eye(2),50)];
group = [ones(50,1);2*ones(50,1);3*ones(50,1)];
gscatter(training(:,1),training(:,2),group,'rcb','*x+');
hold on;
sample = unifrnd(-3,3,20,2);
K = 3;
Mdl = fitcknn(training,group,'NumNeighbors',K);
ck = predict(Mdl,sample); 
gscatter(sample(:,1),sample(:,2),ck,'rcb','ods');

7.6 试编程实现AODE分类器,并以西瓜数据集3.0为训练集,对p.151的“测1”样本进行判别。
答:编程代码附后。
在实现AODE分类器过程中,需要应用(7.23)~(7.25)式计算各个概率值。由于西瓜数据集3.0中含有连续属性,需要对(7.24)和(7.25)计算式进行相应的拓展。

对于(7.24)式,若为连续属性,则按下式计算:

其中为正态分布的概率密度函数,参数为。
对于(7.25)式,存在多种情况:
(a). 若为离散属性,为连续属性,此时:

(b). 若为连续属性,为离散属性,此时:

©. 若为连续属性,为连续属性,此时:

需要注意的是,对于上面(a),(b)两种情况下,求取正态分布参数时,可能因为子集中样本数太少而无法估计。在编程中,若样本数为零,则假定为正态分布,亦即;若仅一个样本,则将平均值设为该唯一取值,方差设为1.

function predict  = aoop(x, X, Y)
%      平均独依赖贝叶斯分类器
%      x 待预测样本
%      X 训练样本特征值
%      Y 训练样本标记
%      laplace 是否采用“拉普拉斯修正”,默认为真
%      mmin 作为父属性最少需要的样本数
laplace=1;
mmin=3;
XX = cell2table(X);
C = unique(Y);  % 所有可能标记
N = zeros(1,size(x,2));
%% 
for i = 1:size(x,2)
    N(i) = size(unique(XX(:,i)),1);
end
%% 
p = zeros(size(C,1),1);  % 存储概率值
% disp('===============平均独依赖贝叶斯分类器(AODE)===============')
for i= 1:size(C,1)
 
    c = C(i);
    % --------求取类先验概率P(c)--------
    disp('--------求取类先验概率P(c)--------')
    Xc = X(Y==c,:);
%     Xc = X(Y==1,:);
    Xcc = cell2table(Xc);
    pc = (size(Xc,1) + laplace) / (size(X,1) + laplace * size(C,1));  % 类先验概率
%     disp('--------求取父属性概率P(c,xi)--------')
    p_cxi = zeros(1,size(x,2));  % 将计算结果存储在一维向量p_cxi中
    for ii = 1:size(x,2)
        if ~strcmp(class(x{1,ii}),class(X{1,ii}))
%             disp('样本数据第%d个特征的数据类型与训练样本数据类型不符,无法预测!')
            return 
        end
        if isa(x{1,ii},'categorical')%strcmp(class(x{1,1}),'categorical')
                % 若为字符型特征,按离散取值处理
                Xci = 0;
                for jj = 1:size(Xc(:,ii))
                    if Xc{jj,ii}==x{1,ii}
                       Xci = Xci+1;
                    end
                end
                p_cxi(ii) = (Xci + laplace) / (size(XX,1)+ laplace * size(C,1) * N(ii));
                
                
         elseif isa(x{1,ii}, 'double')
                % 若为浮点型特征,按高斯分布处理
                
                Xci = cell2mat(Xc(:,ii));
                u = mean(Xci);
                sigma = std(Xci);
                p_cxi(ii) = pc / sqrt(2 * pi) / sigma * exp(-(x{1,ii} - u)^2 / 2 / sigma ^ 2);
        else
                disp('目前只能处理字符型和浮点型数据,对于其他类型有待扩展相应功能。')
                return       
        end   
    end
    % --------求取父属性条件依赖概率P(xj|c,xi)--------
    p_cxixj = eye(size(x,2));  % 将计算结果存储在二维向量p_cxixj中
    for ii = 1:size(x,2)
            for jj = 1:size(x,2)
                if ii == jj
                    continue
                end
                % ------根据xi和xj是离散还是连续属性分为多种情况-----
                if isa(x{1,ii},'categorical') == isa(x{1,jj}, 'categorical')
                    Xci = [];
                    for jjj = 1:size(Xc(:,ii))
                        if Xc{jjj,ii}==x{1,ii}
                            Xci = [Xci,jjj];
                        end
                    end
                    
                    
                    Xcij = 0;
                    for jjj = 1:size(Xci,2)
                        if Xc{Xci(jjj), jj} == x{1, jj}
                            Xcij = Xcij + 1;
                        end
                    end
                    p_cxixj(ii, jj) = (Xcij + laplace) / (size(Xci,2) + laplace * N(jj));
                end
                if isa(x{1,ii},'categorical') && isa(x{1,jj}, 'double')
                    Xci = 0;
                    Xcij = [];
                    for jjj = 1:size(Xc(:,ii))
                        if Xc{jjj,ii}==x{1,ii}
                            Xci = Xci+1;
                            Xcij = [Xcij;Xcc(jjj,:)];
                        end
                    end
                    % 若子集Dc,xi数目少于2个,则无法用于估计正态分布参数,
                    % 则将其设为标准正态分布
                    if size(Xcij,1) == 0
                        u = 0;
                    else
                        Xcij(:,jj)
                        table2array(Xcij(:,jj))
                        u = mean(table2array(Xcij(:,jj)));
                    end
                    if size(Xcij,1) < 2
                        sigma = 1;
                    else
                        sigma = std(table2array(Xcij(:,jj)));
                    end
                    p_cxixj(ii, jj) = 1/(sqrt(2 * pi)*sigma) * exp(-(x{1,jj} - u)^ 2 / (2 * sigma ^ 2));
%                     p_cxixj(ii, jj) = 1 / sqrt(2 * pi) / ...
%                                     sigma * exp(-(x{1,jj} - u) ^ 2 / 2 / sigma ^ 2);
                end
                if isa(x{1,jj},'categorical') && isa(x{1,ii}, 'double')
                    Xci = 0;
                    Xcij = [];
                    for jjj = 1:size(Xc(:,jj))
                        if Xc{jjj,jj}==x{1,jj}
                            Xci = Xci+1;
                            Xcij = [Xcij;Xcc(jjj,:)];
                        end
                    end
                    % 若子集Dc,xi数目少于2个,则无法用于估计正态分布参数,
                    % 则将其设为标准正态分布
                    if size(Xcij,1) == 0
                        u = 0;
                    else
                        u = mean(table2array(Xcij(:,ii)));
                    end
                    if size(Xcij,1) < 2
                        sigma = 1;
                    else
                       
                        sigma = std(table2array(Xcij(:,ii)));
                    end
                    p_cxixj(ii, jj) = 1/(sqrt(2 * pi)*sigma) * exp(-(x{1,ii} - u)^ 2 / (2 * sigma ^ 2))*p_cxi(jj) / p_cxi(ii);
                end
                if isa(x{1,ii},'double') && isa(x{1,jj}, 'double')
                    Xcij = Xcc(:,[ii,jj]);
                    Xcij = table2array(Xcij);  
                    mui = mean(Xcij);
                    sigmaxie = cov(Xcij);
                    temp = pc./p_cxi(ii);
                    p_cxixj(ii,jj) = (1/(2*pi*sqrt(det(sigmaxie))))*exp(-0.5*([x{1,ii},x{1,jj}]-mui)/(sigmaxie)*([x{1,ii},x{1,jj}]-mui)').*temp; 
%                    p_cxixj(ii,jj) = ((1/(2*pi*det(sigmaxie)^(0.5)))*exp(-([x{1,ii} x{1,jj}]-mui)*sigmaxie*([x{1,ii} x{1,jj}]-mui)'/2))*pc/p_cxi(ii); 
                end
            end
            
    end
    sump = 0;
    for iij = 1:size(x,2)
        Xci = 0;
        for jjj = 1:size(X,1)
            if X{jjj,2}==x{1,2}
                Xci = Xci+1
            end
         end
         if Xci >= mmin
            sump = sump + p_cxi(iij)*prod(p_cxixj(iij,:))
         end
    end
    p(i) = sump
end
[~,index]=max(p);
predict = C(index);
p
end
clear;clc;
load m1.mat
load m2.mat
%               主程序
%  ====================================
%4.3 西瓜数据集3.0
%  FeatureName=['色泽','根蒂','敲声','纹理','脐部','触感','密度','含糖率']
%  LabelName={1:'好瓜',0:'坏瓜'}

X = table2cell(xigua1);
x  = table2cell(XTT1);
x = X(17,:);
x{1,8} = 0.8;
Y = [ones(8,1);-1*ones(9,1)];
% x = {'青绿', '蜷缩', '浊响', '清晰', '凹陷', '硬滑', 0.697, 0.460};  % 测试例"测1"
ptict  = aoop(x, X, Y) ; % 此时不用拉普拉斯修正,方便与教材对比计算结果

LLE

function [Y] = lle(X,K,d)
X = X';
[D,N] = size(X);

X2 = sum(X.^2,1);
distance = repmat(X2,N,1)+repmat(X2',1,N)-2*X'*X;

[~,index] = sort(distance);
neighborhood = index(2:(1+K),:);

if(K>D)    
  tol=1e-3; 
else
  tol=0;
end

W = zeros(K,N);
for ii=1:N
   z = X(:,neighborhood(:,ii))-repmat(X(:,ii),1,K); 
   C = z'*z;                                        
   C = C + eye(K,K)*tol*trace(C);                   
   W(:,ii) = C\ones(K,1);                           
   W(:,ii) = W(:,ii)/sum(W(:,ii));                  
end
M = sparse(1:N,1:N,ones(1,N),N,N,4*K*N); 
for ii=1:N
   w = W(:,ii);
   jj = neighborhood(:,ii);
   M(ii,jj) = M(ii,jj) - w';
   M(jj,ii) = M(jj,ii) - w;
   M(jj,jj) = M(jj,jj) + w*w';
end

options.disp = 0; 
options.isreal = 1; 
options.issym = 1; 
options.v0=ones(N,1); 
[Y,~] = eigs(M,d+1,0,options);
Y = Y(:,1:d)'*sqrt(N); 
Y = Y';



谱聚类

function C = spectral(dataSet,sigma, num_clusters)
% 谱聚类算法
% 使用Normalized相似变换
% 输入  : W              : N-by-N 矩阵, 即连接矩阵
%        sigma          : 高斯核函数,sigma值不能为0
%        num_clusters   : 分类数
%
% 输出  : C : N-by-1矩阵 聚类结果,标签值
%   
    dataSet=dataSet/max(max(abs(dataSet)));
    
    Z=pdist(dataSet);
    W=squareform(Z);
    format long
    m = size(W, 1);
    %计算相似度矩阵  相似度矩阵由权值矩阵得到,实践中一般用高斯核函数
    W = W.*W;   %平方
    W = -W/(2*sigma*sigma);
    S = full(spfun(@exp, W)); % 在这里S即为相似度矩阵,也就是这不在以邻接矩阵计算,而是采用相似度矩阵

    %获得度矩阵D
    D = full(sparse(1:m, 1:m, sum(S))); %所以此处D为相似度矩阵S中一列元素加起来放到对角线上,得到度矩阵D

    % 获得拉普拉斯矩阵 Do laplacian, L = D^(-1/2) * S * D^(-1/2)
    L = eye(m)-(D^(-1/2) * S * D^(-1/2)); %拉普拉斯矩阵

    % 求特征向量 V
    %  eigs 'SM';绝对值最小特征值
    [V, ~] = eigs(L, num_clusters, 'SM');
    % 对特征向量求k-means
    C=kmeans(V,num_clusters);
end

邻接矩阵转图





import networkx as nx  # 导入NetworkX包,为了少打几个字母,将其重命名为nx
import matplotlib.pyplot as plt  # 导入绘图包matplotlib
import numpy as np

# matrix = [[0 for x in range(8)] for y in range(8)]  # 8*8的零矩阵
matrix = [[0, 1, 1, 1, 0, 0, 1, 0],
          [1, 0, 1, 1, 1, 0, 0, 0],
          [1, 1, 0, 0, 1, 1, 1, 0],
          [1, 1, 0, 0, 1, 0, 1, 0],
          [0, 1, 1, 1, 0, 1, 1, 1],
          [0, 0, 1, 0, 1, 0, 0, 1],
          [1, 0, 1, 1, 1, 0, 0, 1],
          [0, 0, 0, 0, 1, 1, 1, 0]]
colors = [1, 2, 3, 3, 1, 2, 2, 3]
# matrix = np.array(matrix)
# 创建图
G = nx.Graph()  # 建立一个空的无向图
v = range(1, 8)  # 一维行向量,从1到8递增
G.add_nodes_from(v)  # 从v中添加结点,相当于顶点编号为1到8
for x in range(0, len(matrix)):  # 添加边
    for y in range(0, len(matrix)):
        if matrix[x][y] == 1:
            G.add_edge(x, y)
            print(x, y)

    # 绘制网络图G,带标签,           用指定颜色给结点上色
nx.draw(G, with_labels=True, node_color=colors)
plt.show()

马尔可夫使用

from random import randint
import numpy as np
from hmmlearn import hmm


def hmm_forward(A, B, pi, O, V):
    T = len(O)
    N = len(A[0])
    # step1 初始化
    alpha = [[0] * T for _ in range(N)]
    for i in range(N):
        alpha[i][0] = pi[i] * B[i][V.index(O[0])]

    # step2 计算alpha(t)
    for t in range(1, T):
        for i in range(N):
            temp = 0
            for j in range(N):
                temp += alpha[j][t - 1] * A[j][i]
            alpha[i][t] = temp * B[i][V.index(O[t])]

    # step3  V.index(O[t])
    proba = 0
    for i in range(N):
        proba += alpha[i][-1]
    return proba, alpha


def hmm_backward(A, B, pi, O, V):
    T = len(O)
    N = len(A[0])
    # step1 初始化
    beta = [[0] * T for _ in range(N)]
    for i in range(N):
        beta[i][-1] = 1

    # step2 计算beta(t)  V.index(O[t + 1])
    for t in reversed(range(T - 1)):
        for i in range(N):
            for j in range(N):
                beta[i][t] += A[i][j] * B[j][V.index(O[t + 1])] * beta[j][t + 1]

    # step3
    proba = 0
    for i in range(N):
        proba += pi[i] * B[i][V.index(O[0])] * beta[i][0]
    return proba, beta


'''def TODO_EM(Q, V, A, B, pi, v):
    T = len(O)
    N = len(A[0])
    # 第一步
    _, alpha2 = hmm_forward(A, B, pi, O, v)
    _, beta = hmm_backward(A, B, pi, O, v)
    alpha2 = np.array(alpha2)
    beta = np.array(beta)

    EY = 0
    Y_i = np,zeros
    for j in range(N):

        EY = EY + np.vdot(alpha2[j], beta[j])
    print(EY)

    #

    return 0
'''


def hmm_obs_seq(Q, V, A, B, pi, T):
    """
    :param Q: 状态集合
    :param V: 观测集合
    :param A: 状态转移概率矩阵
    :param B: 观察概率矩阵
    :param pi: 初始概率分布
    :param T: 观察序列和状态序列的长度
    """
    q_0 = np.random.choice(Q, size=1, p=pi)
    o_0 = list(np.random.choice(V, size=1, p=B[Q.index(q_0)]))
    o_t = []
    o_t.extend(o_0)
    for t in range(1, T):
        q_t = np.random.choice(Q, size=1, p=A[Q.index(q_0)])
        o_t.extend(np.random.choice(V, size=1, p=B[Q.index(q_t)]))
    for i in range(T):
        o_t[i] = [V.index(o_t[i])]
    return o_t


# 《统计学习方法》中的例子  V.index(o_0)
Q = [1, 2, 3]
V = ['红', '白']
A = np.array([[0.5, 0.2, 0.3], [0.3, 0.5, 0.2], [0.2, 0.3, 0.5]])
B = np.array([[0.5, 0.5], [0.4, 0.6], [0.7, 0.3]])
pi = [0.2, 0.4, 0.4]
'''T = 8
O = hmm_obs_seq(Q, V, A, B, pi, T)
print(O)
proba, alpha = hmm_forward(A, B, pi, O, V)
print(alpha)
TODO_EM(Q, V, A, B, pi, V)'''
X2 = np.array([[0], [1], [0]])
data_size = 100
whole_data = []
lengths = []
n_observations = len(V)
for i in range(data_size):
    sequence_length = randint(3, 10)
    data = hmm_obs_seq(Q, V, A, B, pi, sequence_length)
    whole_data.append(data)
    lengths.append(sequence_length)
whole_data = np.concatenate(whole_data)
lengths = ([3])
hmm_model = hmm.MultinomialHMM(n_components=len(Q),
                               n_iter=1000000,  # 要执行的最大迭代次数
                               tol=0.00000001,  # 收敛阈值。如果对数可能性增益低于该值,EM将停止。
                               verbose=False,  # 如果为True,则每次迭代收敛报告将打印到sys。斯特德尔。
                               )
'''hmm_model.fit(X2, lengths)

# 学习之后,查看参数
print(f"结束学习 ", str(data_size) + "次")
# print('因为是无监督学习,所以模型不会把 A B 排定先后顺序,但是 三个参数是相互关联的,所以顺序其实无关系')
print('初始概率')
print(hmm_model.startprob_, '\n')
print('状态转移矩阵')
print(hmm_model.transmat_, '\n')
print('从隐藏状态到 显示状态的发散矩阵')
print(hmm_model.emissionprob_, '\n')'''
hmm_model.startprob_ = pi
hmm_model.transmat_ = A
hmm_model.emissionprob_ = B
seen = np.array([[0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1]]).T
logprob, box = hmm_model.decode(seen, algorithm="viterbi")
print(logprob)
print(box + 1)
box = hmm_model.predict(seen)
print("f1g5edg")
print(box + 1)
'''print("The ball picked:", ", ".join(map(lambda x: observations[x], seen)))
print("The hidden box", ", ".join(map(lambda x: states[x], box)))'''

马尔可夫聚类

function [C,p] = Markovclustering(data,K,mode)
% mode    	先降维后聚类
if nargin<3
    mode = 1;
else
    switch mode
        case 'PCA'
            mode = 1;
        case 'LLE'
            mode = 2;
        otherwise   
            
    end
end
if mode == 1
    if size(data,2) > 2
        [~, score] = pca(data);
        p = score(:,1:2);
    else
        p = data;
    end
else
    if size(data,2) > 2
%         [~, data] = pca(data);
        score = lle(data,12,2);
        p = score;
    else
        p = data;
    end
end


for i = 1:length(p)
    for j =1:length(p)
        W(i,j) = sqrt(sum((p(i,:)-p(j,:)).^2));%根据距离初始化无向图的边
    end
end
preW=W;
while 1
    x=repmat(sum(W),length(p),1);
    W=W./x;
    W=W*W;                      %马尔科夫状态转移
    if sum(sum(preW-W))<1e-15
        break;
    end
    preW=W;
end
[C,~] = kmeans(W(:,1),K);  
end

极其简单的梯度下降

x = 0:0.1:10;
y = 4*x + 8*rand(1,101)- 8*rand(1,101);
plot(x,y,'.r');
arf = 0.0001;
k0 = 1;

for j = 1:100
for i = 1:101
    k0 = k0-arf*((k0*x(i)-y(i))*x(i));
end
end

y2 = k0*x;
hold on
plot(x,y2,'.b');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基础算法matlab 的相关文章

  • 扩展 MATLAB 函数名称的最大长度

    我编写了一个 MATLAB 程序 可以动态创建自定义 MATLAB 函数 并使用以下命令在其他 MATLAB 实例中启动它们unix命令 我使用这个程序来自动化 fMRI 神经影像分析 使用 SPM8 for MATLAB 一切正常 但是
  • 两个 y 轴与相同的 x 轴[重复]

    这个问题在这里已经有答案了 可能的重复 在单个图中绘制 4 条曲线 具有 3 个 y 轴 https stackoverflow com questions 1719048 plotting 4 curves in a single plo
  • Python 函数句柄 ala Matlab

    在 MATLAB 中可以创建function handles http www mathworks co uk help techdoc ref function handle html与类似的东西 myfun arglist body 这
  • 在 matlab 中求 3d 峰的体积

    现在我有一个带有峰值的 3D 散点图 我需要找到其体积 我的数据来自图像 因此 x 和 y 值表示 xy 平面上的像素位置 z 值是每个像素的像素值 这是我的散点图 scatter3 x y z 20 z filled 我试图找到数据峰值的
  • 两个向量之间的欧氏距离(单行矩阵)

    我有两个向量 单行矩阵 假设我们已经知道长度len A x1 x2 x3 x4 x5 B y1 y2 y3 y4 y5 计算它们之间的欧几里德距离最快的方法是什么 我的第一次尝试是 diff A B sum 0 for column 1 l
  • MATLAB:具有复数的 printmat

    我想使用 MATLAB 的printmat显示带有标签的矩阵 但这不适用于复数 N 5 x rand N 1 y rand N 1 z x 1i y printmat x y z fftdemo N 1 2 3 4 5 x y x iy O
  • 如何在 Matlab 中将数组打印到 .txt 文件?

    我才刚刚开始学习Matlab 所以这个问题可能非常基本 我有一个变量 a 2 3 3 422 6 121 9 4 55 我希望将值输出到 txt 文件 如下所示 2 3 3 422 6 121 9 4 55 我怎样才能做到这一点 fid f
  • 有没有办法在matlab中进行隐式微分

    我经常使用 matlab 来帮助我解决数学问题 现在我正在寻找一种在 matlab 中进行隐式微分的方法 例如 我想区分y 3 sin x cos y exp x 0关于dy dx 我知道如何使用数学方法通常做到这一点 但我一直在努力寻找使
  • matlab中的排列函数是如何工作的

    这是一个有点愚蠢的问题 但我似乎无法弄清楚排列在 matlab 中是如何工作的 以文档为例 A 1 2 3 4 permute A 2 1 ans 1 3 2 4 到底是怎么回事 这如何告诉 matlab 3 和 2 需要交换 哇 这是我迄
  • 检测植物图片中的所有分支

    我想知道有什么可以检测下图中的所有绿色树枝 目前我开始应用 Frangi 过滤器 options struct FrangiScaleRange 5 5 FrangiScaleRatio 1 FrangiBetaOne 1 FrangiBe
  • 理解高斯混合模型的概念

    我试图通过阅读在线资源来理解 GMM 我已经使用 K 均值实现了聚类 并且正在了解 GMM 与 K 均值的比较 以下是我的理解 如有错误请指出 GMM 类似于 KNN 在这两种情况下都实现了聚类 但在 GMM 中 每个簇都有自己独立的均值和
  • 如何在放置颜色条后保持子图大小不变

    假设我们有一个 1 2 子图 我们在其中绘制了一些图形 如下所示 subplot 1 2 1 surf peaks 20 subplot 1 2 2 surf peaks 20 然后我们要添加一个颜色条 colorbar 我不希望结果中的正
  • 有效地绘制大时间序列(matplotlib)

    我正在尝试使用 matplotlib 在同一轴上绘制三个时间序列 每个时间序列有 10 6 个数据点 虽然生成图形没有问题 但 PDF 输出很大 在查看器中打开速度非常慢 除了以栅格化格式工作或仅绘制时间序列的子集之外 还有其他方法可以获得
  • 了解 fminunc 参数和匿名函数、函数处理程序

    请多多包涵 问题在最后 我试图找出 fminunc 调用方式的差异 这个问题源于 Andrew Ng 在他的 Coursera 机器学习课程中的第 3 周材料 我正在回答这个问题 Matlab Andrew Ng 机器学习课程中 t cos
  • 图像处理 - 使用 opencv 进行服装分割

    我正在使用 opencv 进行服装特征识别 第一步 我需要通过从图像中移除脸部和手来分割 T 恤 任何建议表示赞赏 我建议采用以下方法 Use 阿德里安 罗斯布鲁克的用于检测皮肤的皮肤检测算法 谢谢罗莎 格隆奇以获得他的评论 在方差图上使用
  • Matlab 的 imresize 函数中用于插值的算法是什么?

    我正在使用 Matlab Octaveimresize 对给定的二维数组重新采样的函数 我想了解如何使用特定的插值算法imresize works 我在Windows上使用八度 e g A 1 2 3 4 是一个二维数组 然后我使用命令 b
  • 如何在MATLAB中显示由三个矩阵表示的图像?

    我有 3 个相同大小的 2D 矩阵 假设 200 行和 300 列 每个矩阵代表三种 基本 颜色 红色 绿色和蓝色 之一的值 矩阵的值可以在 0 到 255 之间 现在我想组合这些矩阵以将它们显示为彩色图像 200 x 300 像素 我怎样
  • MATLAB 类的 Description 和DetailedDescription 属性

    内置 MATLAB 类具有 Description 和 DetailedDescription 属性的值 gt gt handle ans meta class handle Package meta Properties Name han
  • MATLAB:在不使用循环的情况下提取矩阵的多个部分

    我有一个巨大的 2D 矩阵 我想从中提取 15 个不同的 100x100 部分 我有两个向量 x 和 y 其中保存了零件的左上角索引 我用过这样的东西 result cam1 x 1 end x 1 end 99 y 1 end y 1 e
  • 如何使用SIFT算法计算两幅图像的相似度?

    我已经用过SIFT http en wikipedia org wiki Scale invariant feature transform实施安德里亚 维达尔迪 http www vlfeat org overview sift html

随机推荐

  • LeetCode 沙漏的最大总和

    以最中间的的那个元素来移动 整个沙漏移动 class Solution public int maxSum int grid int max 0 int sum 0 for int i 1 i lt grid length 1 i for
  • 【华为OD机试】路灯照明问题【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 在一条笔直的公路上安装了N个路灯 从位置0开始安装 路灯之间间距固定为100米 每个路灯都有自己的照明半径 请计算第一个路灯和最后一个路灯之间 无法照明的区间的长度和
  • 线上git仓库地址更改,本地如何更改?

    1 进入终端查看本地代码关联的git仓库地址 git remote v 2 删除本地关联的git仓库地址 git remote rm origin 3 本地代码关联新的仓库地址 git remote add origin 新地址 4 再次查
  • 获取BDUSS的简单方式

    BDUSS是登录百度 web wap 后的唯一身份凭证 baidu com 受http only保护 拿到BDUSS就等于拿到帐号的控制权 通行贴吧 知道 百科 文库 空间 百度云等百度主要产品 在 贴吧云签系统 中 需要用到BDUSS进行
  • Linux下查看磁盘使用率及文件和文件夹大小

    原文地址 http blog sina com cn s blog 4ab088470106ge0o html 大家在使用linux的过程中 或许遇到过数据无法入库 无法上传数据等等 这就要多长个心眼 去查看一下磁盘使用率和文件大小吧 这时
  • 贪心+二分解决最大值最小、最小值最大问题

    在刷题时 总会遇到求最大值最小 最小值最大问题 也许它会暗喻是这样的一个问题 对于这样的一个问题 你会发现用dp和枚举都会超时超内存 或者说很麻烦 所以这是一个比较简单的解题方式 二分逼近思想 对于难以直接确定解的问题 采取二分枚举 检验的
  • mysql常见六大约束

    DDL语言 常见约束 约束的含义 一种限制 用于限制表中的数据 为了保证表中的数据的准确性和可靠性 分类 六大约束 1 NOT NULL 非空约束 用于保证该字段的值不能为空 比如姓名 学号等 2 DEFAULT 默认约束 用于保证该字段有
  • Pycharm中放大和缩小代码界面

    直接上图流程 打开文件 点击设置 选择 keymap 右侧搜索框输入 increase 搜索出来之后双击 选择 Add Mouse Shortcut 然后在操作框按住 Ctrl 并将鼠标滚轮上滑 完成设置 一直点击OK关闭界面即可 之后按住
  • TortoiseGit如何变动项目Ip地址

    第一步 进到项目所在目录 找到git文件夹里的config文件 第二步 用记事本打开config文件 修改ip地址信息并保存即可
  • Spring的内部bean

    当一个bean仅被用作另一个bean的属性时 才能被声明为一个内部bean 为了定义inner bean 在Spring的基于XML的配置元数据中 可以在
  • 激光炸弹题解

    维生素C吃多了会上火 个人CSDN博文目录 2022蓝桥杯 目录 题目链接 题解 题目链接 题解 1 不同目标可能在同一位置所以 w 2 可能在 5000 5000 所以要算到5001 3 long long 超内存 include
  • EasyPoi实现Excel数据导入

    EasyPoi是一个基于Java的Excel导入导出框架 主要提供了Excel读取 写入等基本功能 并且支持通过注解来定义Excel文件的格式 添加maven依赖
  • 【WinForm】WebView2-个性化浏览器-桌面程序开发详解

    这是一个桌面程序上的浏览器 是用插件WebView2开发的浏览器桌面程序 功能体验堪比Edge浏览器 相比使用Chrome内核插件开发浏览器来说 还是用插件WebView2开发来得简单一些 接下来讲一讲实现过程 开发之前 建议先看看微软的
  • spring boot工程创建(idea无法联网)

    1 进入spring官网Spring Home 2 点击spring boot 3 翻到最下边 点击此处 或者直接进入网址Spring Initializr 4 设定项目基本内容 5 选择对应依赖 6 删除依赖 7 创建项目 8 将项目压缩
  • 自监督学习-MoCo-论文笔记

    论文 Momentum Contrast for Unsupervised Visual Representation Learning CVPR 2020 最佳论文提名 用动量对比学习的方法做无监督的表征学习任务 动量的理解即是指数移动平
  • 初学者写一个程序(一)(PyCharm配置Python解释器)

    5 PyCharm配置Python解释器 1 首先安装 PyCharm 完成之后 打开它会显示如下所示的界面在file中也有settings 点击后一样的操作 图六 在此界面中 可以手动给 PyCharm 设置 Python 解释器 点击图
  • 指数平滑法(Exponential Smoothing,ES)

    目录 1 指数平滑 2 一次指数平滑预测 又叫简单指数平滑 simple exponential smoothing SES 2 1 定义 2 2 例题 3 二次指数平滑法 Holt s linear trend method 3 1 定义
  • torch.nn.modules.module.ModuleAttributeError: ‘DataParallel‘ object has no attribute ‘step‘

    错误位置定点 解决方法
  • react学习—属性默认值和类型验证

    属性默认值和类型验证 一 属性默认值 1 函数组件属性默认值 2 类组件默认属性值 二 属性类型验证 1 常见值类型 2 是否必传isRequired 3 其它类型验证 4 自定义验证 一 属性默认值 通过一个静态属性defaultProp
  • 基础算法matlab

    常用算法 knn knn clc close all clear training mvnrnd 2 2 eye 2 50 mvnrnd 2 2 2 eye 2 50 mvnrnd 2 2 2 eye 2 50 group ones 50