精华内容
下载资源
问答
  • 请问这个怎么解决
  • matlab 索引超出矩阵维度

    万次阅读 2020-03-27 19:10:19
    只要利用 zeros 函数 初始化矩阵维度即可。 zeros函数——生成零矩阵 ones函数——生成全1阵 例如:B = zeros(m,n):生成m×n全零阵 % 预设内存 RSSIop =zeros(1,n); RSSIpre=zeros(1,n); 警告消失 ...

    使用matlab发生一个警告

     

    如何预分配内容呢? 只要利用 zeros 函数 初始化矩阵的维度即可。

    zeros函数——生成零矩阵

    ones函数——生成全1阵

    例如:B = zeros(m,n):生成m×n全零阵

    % 预设内存
    RSSIop =zeros(1,n);
    RSSIpre=zeros(1,n);
    

    警告消失

    https://www.cnblogs.com/haimishasha/p/9959250.html

     

    展开全文
  • MATLAB索引超出矩阵维度,求大神指点错误! MATLAB索引超出矩阵维度,求大神指点错误! 最近在做k均值动态聚类的时候,matlab提示索引超出矩阵维度,不知道问题出在哪了。 代码 N1 = 50; N2 = N1; N3=N1; % 设置每类...

    MATLAB索引超出矩阵维度,求大神指点错误!

    MATLAB索引超出矩阵维度,求大神指点错误!

    最近在做k均值动态聚类的时候,matlab提示索引超出矩阵维度,不知道问题出在哪了。

    代码

    N1 = 50;
    N2 = N1;
    N3=N1; % 设置每类样本个数都为50
    N = N1+N2+N3;
    d = 2; % 设置为二维样本
    X1 = rand(d,N1); % 第1类样本,1个样本占1列
    X2 = rand(d,N2)+1;
    X3=rand(d,N3)+2; % 第2类样本,1个样本占1列
    X = [X1 X2 X3];
    %----------------------2、初始化----------------------------------
    m1_pre = X(:,1); % 初始化第1类均值,令其= x1
    m2_pre = X(:,2);
    m3_pre=X(:,3); % 初始化第2类均值,令其= x2
    epsilon = 0.001; % 收敛阈值
    T_max = 1000; % 最大迭代次数
    %----------------------3、迭代----------------------------------
    for t = 0:T_max
    figure; % 画出样本均值
    hold on; plot(m1_pre(1),m1_pre(2),‘gv’,‘markersize’,10,‘MarkerFaceColor’,‘g’);
    hold on; plot(m2_pre(1),m2_pre(2),‘kv’,‘markersize’,10,‘MarkerFaceColor’,‘k’);
    hold on; plot(m3_pre(1),m3_pre(2),‘rv’,‘markersize’,10,‘MarkerFaceColor’,‘r’);
    m1 = 0;
    m2 = 0;
    m3 = 0;
    N1 = 0;
    N2 = 0;
    N3 = 0;
    for i = 1:N
    xi=X(:,i);
    if norm(xi-m1_pre) < norm(xi-m2_pre) && norm(xi-m1_pre) < norm(xi-m3_pre) % 最小距离判别,norm计算向量的模
    m1 = m1+xi;
    N1 = N1+1;
    hold on; plot(xi(1),xi(2),xi(3),‘go’,‘markersize’,5,‘MarkerFaceColor’,‘g’);
    else if norm(xi-m2_pre) < norm(xi-m1_pre) && norm(xi-m2_pre) < norm(xi-m3_pre)
    m2 = m2+xi;
    N2 = N2+1;
    hold on; plot(xi(1),xi(2),xi(3),‘ko’,‘markersize’,5,‘MarkerFaceColor’,‘k’);
    else norm(xi-m3_pre) < norm(xi-m1_pre) && norm(xi-m3_pre) < norm(xi-m2_pre)
    m3 = m3+xi;
    N3 = N3+1;
    hold on; plot(xi(1),xi(2),xi(3),‘ro’,‘markersize’,5,‘MarkerFaceColor’,‘r’);
    end
    end
    end
    m1 = m1/N1;
    m2 = m2/N2;
    m3 = m3/N3;
    t = t+1; % 迭代次数+1
    xlabel(‘x_1’,‘fontsize’,16);
    ylabel(‘x_2’,‘fontsize’,16);
    title(sprintf(‘t=%d’,t),‘fontsize’,20);
    if norm(m1 - m1_pre)<epsilon && norm(m2 - m2_pre)<epsilon && norm(m3-m3_pre)<epsilon % 判断是否停止迭代
    break;
    end
    m1_pre = m1; % 更新均值
    m2_pre = m2;
    m3_pre = m3;
    end
    disp(sprintf(‘迭代%d次!’,t)); % 显示迭代次数

    展开全文
  • 开始运行程序没问题,后面在今天用的时候突然提示“索引超出矩阵维度。”我代码和数据集都没换过。。。不知道原因,求大神解一下 ``` function [acc,G,Cls] = GFK(X_src,Y_src,X_tar,Y_tar,dim) Ps = pca(X_src)...
  • clearclcchang=input('80');kuan=input('40');m=input('70');n11=input('11');n22=input('19');n33=input('20');n44=input('22');n55=input('12');n66=input('10');ticn1=100;n2=n1-(n11-n22)/(n11-n66)*100;...

    clear

    clc

    chang=input('80');

    kuan=input('40');

    m=input('70');

    n11=input('11');

    n22=input('19');

    n33=input('20');

    n44=input('22');

    n55=input('12');

    n66=input('10');

    tic

    n1=100;

    n2=n1-(n11-n22)/(n11-n66)*100;

    n3=n2-(n22-n33)/(n11-n66)*100;

    n4=n3-(n33-n44)/(n11-n66)*100;

    n5=n4-(n44-n55)/(n11-n66)*100;

    n6=0;

    s1=round(chang*kuan*m(n1-n2)/(100*100*242));

    s2=round(chang*kuan*m(n2-n3)/(100*100*169));

    s3=round(chang*kuan*m(n3-n4)/(100*100*104));

    s4=round(chang*kuan*m(n4-n5)/(100*100*44));

    s5=round(chang*kuan*m(n5-n6)/(100*100*11));

    for i=1:s1

    JZB.n(i,1)=randint(1,1,[6,10]);

    JZB.th(i,1)=0;

    a=0;

    for j=1:JZB.n(i,1)

    b=2*pi/JZB.n(i,1)+(2*rand(1)-1)*0.05*2*pi/JZB.n(i,1);

    JZB.th(i,j+1)=b+a;

    a=JZB.th(i,j+1);

    JZB.r(i,j)=17.5/2+(2*rand(1)-1)*1.5/2;

    end

    JZB.th(i,JZB.n(i,1)+1)=2*pi;

    JZB.r(i,JZB.n(i,1)+1)=JZB.r(i,1);

    JZB.rmax(i,1)=max(JZB.r(i,:));

    end

    for i=s1+1:s1+s2

    JZB.n(i,1)=randint(1,1,[6,10]);

    JZB.th(i,1)=0;

    a=0;

    for j=1:JZB.n(i,1)

    b=2*pi/JZB.n(i,1)+(2*rand(1)-1)*0.05*2*pi/JZB.n(i,1);

    JZB.th(i,j+1)=b+a;

    a=JZB.th(i,j+1);

    JZB.r(i,j)=14.6/2+(2*rand(1)-1)*1.4/2;

    end

    JZB.th(i,JZB.n(i,1)+1)=2*pi;

    JZB.r(i,JZB.n(i,1)+1)=JZB.r(i,1);

    JZB.rmax(i,1)=max(JZB.r(i,:));

    end

    for i=s1+s2+1:s1+s2+s3

    JZB.n(i,1)=randint(1,1,[6,10]);

    JZB.th(i,1)=0;

    a=0;

    for j=1:JZB.n(i,1)

    b=2*pi/JZB.n(i,1)+(2*rand(1)-1)*0.05*2*pi/JZB.n(i,1);

    JZB.th(i,j+1)=b+a;

    a=JZB.th(i,j+1);

    JZB.r(i,j)=11.35/2+(2*rand(1)-1)*1.85/2;

    end

    JZB.th(i,JZB.n(i,1)+1)=2*pi;

    JZB.r(i,JZB.n(i,1)+1)=JZB.r(i,1);

    JZB.rmax(i,1)=max(JZB.r(i,:));

    end

    for i=s1+s2+s3+1:s1+s2+s3+s4

    JZB.n(i,1)=randint(1,1,[6,10]);

    JZB.th(i,1)=0;

    a=0;

    for j=1:JZB.n(i,1)

    b=2*pi/JZB.n(i,1)+(2*rand(1)-1)*0.05*2*pi/JZB.n(i,1);

    JZB.th(i,j+1)=b+a;

    a=JZB.th(i,j+1);

    JZB.r(i,j)=7.125/2+(2*rand(1)-1)*2.375/2;

    end

    JZB.th(i,JZB.n(i,1)+1)=2*pi;

    JZB.r(i,JZB.n(i,1)+1)=JZB.r(i,1);

    JZB.rmax(i,1)=max(JZB.r(i,:));

    end

    for i=s1+s2+s3+s4+1:s1+s2+s3+s4+s5

    JZB.n(i,1)=randint(1,1,[6,10]);

    JZB.th(i,1)=0;

    a=0;

    for j=1:JZB.n(i,1)

    b=2*pi/JZB.n(i,1)+(2*rand(1)-1)*0.05*2*pi/JZB.n(i,1);

    JZB.th(i,j+1)=b+a;

    a=JZB.th(i,j+1);

    JZB.r(i,j)=3.555/2+(2*rand(1)-1)*1.195/2;

    end

    JZB.th(i,JZB.n(i,1)+1)=2*pi;

    JZB.r(i,JZB.n(i,1)+1)=JZB.r(i,1);

    JZB.rmax(i,1)=max(JZB.r(i,:));

    end

    Range=[0 chang;0 kuan];

    plot([Range(1,1) Range(1,2) Range(1,1) Range(1,2)],[Range(2,1) Range(2,2) Range(2,1) Range(2,2)]);

    hold on;

    cum=0;

    for i=1:10000000000

    if cum==s1+s2+s3+s4+s5

    break;

    end

    SJZB.x(cum+1,1)=rand(1)*(Range(1,2)-Range(1,1))+Range(1,1);

    SJZB.y(cum+1,1)=rand(1)*(Range(2,2)-Range(2,1))+Range(2,1);

    r=JZB.rmax(cum+1,1);

    这个运行时出现如图所示情况,请问怎么解决?

    捕获.GIF

    (7.48 KB, 下载次数: 0)

    2017-9-6 10:56 上传

    442a53943febe9465fc072b4fbe10813.gif

    b2a5a3e0dcc7d508e00275fe42fce1b5.gif

    d1b8d8667f46dc0b1f3f71948a0a7cce.gif

    展开全文
  • 话题:程序用matlab运行显示索引超出矩阵维度,请问怎么改?回答:用size函数可以求矩阵维数,用reshape可以改变数据维数。 如: a=[1 2 3;4 5 6;7 8 9]; size(a) ans = 3 3 说明矩阵a是3行3列的。 reshape(a,1,9) ...

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解。

    话题:程序用matlab运行显示索引超出矩阵维度,请问怎么改?回答:用size函数可以求矩阵维数,用reshape可以改变数据维数。 如: a=[1 2 3;4 5 6;7 8 9]; size(a) ans = 3 3 说明矩阵a是3行3列的。 reshape(a,1,9) ans = 1 4 7 2 5 8 3 6 9 可以讲数组a变成1行9列的。MATLAB是美国MathWorks出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。img src="https://pic.wenwen.soso.com/p/20180606/20180606220820-2117256168_jpeg_300_300_14592.jpg"它将数值分析、矩阵计算、科学数据可视化以及非线动态系统的建模和等诸多强大功能集成在一个易于使用的视窗环境中,为科学、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的模式,了当今科学计算软件的先进水平。

    参考回答:用size函数可以求矩阵维数,用reshape可以改变数据维数。 如: a=[1 2 3;4 5 6;7 8 9]; size(a) ans = 3 3 说明矩阵a是3行3列的。 reshape(a,1,9) ans = 1 4 7 2 5 8 3 6 9 可以讲数组a变成1行9列的。

    367b1f1da690483dbff54a42d0ff79a3.png话题:matlab中 出现索引超出矩阵维度 怎么解决回答:用变量进行下标索引了吧,修改程序,让下标变量的值不超出维度范围即可。话题:MATLAB出现索引超过矩阵维数怎么解决回答:一个数组只有3个元素,那么当你引用第4个元素时就超出索引范围了。同理,本来只有二维,三维索引就超出范围了。例如: a=[1,2,3]; a(4)??? Index exceeds matrix dimensions.

    参考回答:一道士欲以符毁掉陶生、英本体、游侠。才及时赶到,救下。

    561ed258a94ab5dcf6d1fc54696d5ee4.png话题:matlab运行时提示超出矩阵维度回答:beta=4; % beta 是一个常量 beta(alpha,beta) % beta 不是二维数据,所以索引超出

    参考回答:你读入到matlab中矩阵A显示的是多少行*多少列。是不是matlab中就是xx行*1列所以A(:,3)就超出数组维度了你读入的明明就是字符串吧话题:matlab中索引超出矩阵维度?回答:beta=4; % beta 是一个常量 beta(alpha,beta) % beta 不是二维数据,所以索引超出话题:求助,matlab老出现索引超出矩阵维度,怎么办?以下是matlab程序及回答:为什么matlab老出现索引超出矩阵维度?可能是数据有问题,建议你这样来排查,把第41行的空格去掉,一直去到第40行的尾部,即光标符处于40行的尾部,保存。然后再运行你的码。 如还有问题,再交流。

    3bc9aa6a856697990c71dd8ca4d0abfa.png话题:matlab 索引超出矩阵维度回答:beta=4; % beta 是一个常量beta(alpha,beta) % beta 不是二维数据,所以索引超出话题:数据表中明明有15列为什么在matlab中运行显示索引超出矩阵维度回答:sum(A')就可以了.求出来就是行向量的和.求和之后还是个向量.sum函数是把矩阵看成列向量来求和的.貌似你这样的写法也是对的啊.结果是一样的.只不过表示的一个是行向量.一个是列向量!话题:matlab一直说索引超出矩阵维度,怎么改回答:程序里(i) AE(i)等矩阵需要提前定义成你需要的形式B = sym(zero(1,N))索引超限要么是矩阵小了,要么是索引错了

    b633ede4b22949596f431f98bc3dce39.png话题:matlab索引超出矩阵维度回答:很明显是你的data_test包含的数字超出了label的个数,:你的data_test含有5249这个数,但是这种情况下如果你的label没有5249个数,自然超出了索引。label(x)表示取第x个数

    展开全文
  • function mainclearL=32;%基底尺寸的设定;step1=500;%生长层数的设定,niu=1;deltt=0.05;deltx=1;dd=16;aa=(2*dd/deltx)^(1/2);%基本参数的设定;cs=100; %重复计算次数h=zeros(L+2,step1);%基底高度的初值;...
  • 索引超出矩阵维度

    千次阅读 2020-06-04 18:31:19
    关于使用Matlab中max或min时出现报错:索引超出矩阵维度的情况: 可能是之前在代码中重新设定了max或min的变量名字, 由于matlab寻找变量名或函数名是先从当前工作空间和当前文件夹搜索的,导致程序运行时系统找错。...
  • 通用的把矩阵写入txt文件的 > X=rand(8,6) X = 0.3816 0.7547 0.3404 0.9593 0.2435 0.8308 0.7655 0.2760 0.5853 0.5472 0.9293 0.5853 0.7952 0.6797 0.2238 0.1386 0.3500 0.5497 0.1869 0.6551 0.7513 0.1493 0....
  • 索引超出矩阵维度,但不会改错,求指导
  • index2(temp)=index1(temp2(1)) %记录标号索引 ``` 我的数据是一个130*130的对称矩阵,第三次循环时发生问题,报错如图: ![图片说明](https://img-ask.csdn.net/upload/201909/12/1568255291_913389.png) ...
  • ![图片说明](https://img-ask.csdn.net/upload/201904/20/1555751055_468241.png)!... 尝试用程序把Inimg和Staimg图像都改成512*512的,和把两个图像像素改成一样大小,但是还是超出维度,怎么办?
  • MATLAB的复化柯特斯公式,提示我索引超出矩阵维度,但是我改不来 function cotes(a,b) n=4; for i=1:5 x=a:(b-a)/4*n:b; m=4*n+1; h=(b-a)/n; s=(h/90)*(7*f1(a)+32*sum(f1(x(1:4:m-4)))+12*sum(f1(x(0:4...
  • 在使用matlab的max( )函数时,报错:下标索引必须为正整数类型或逻辑类型。 我检查了一遍数组Ldb,索引是没有问题的。matlab索引是从1开始的,这一点没有用错。 再检查后发现程序里有这样的语句: max=max(abs...
  • matlab程序运行过程中会出现如上提示,在网上检索未果,键入dbstop if error语句也无法定错误之处,就想这个错误不是一般的错误。 通过间隔打断点的方式最后定位错误为一句exist = find(a == 0);应该返回索引,...
  • matlab程序运行过程中会出现如上提示,在网上...应该返回索引,结果返回结果全部为零,猜想是不是exist这个变量的问题,故将其改名为exist_1,结果程序正常执行,搜索发现,原来是exist为matlab中一个函数,这里相当...
  • sum函数在索引矩阵A时,索引到下标为0或负数了。(虽然理论上并没有)可能是受到你之前空间变量的影响了,你在这些语句之前加上“clear”语句,清除一下工作空间变量试试。 ...
  • data = [1 2 3;...%矩阵的大小为M %生成邻接矩阵 ss=length(data(:,1)); for i=1:ss F(data(i,1),data(i,2))=data(i,3); %将边标注进矩阵 end %把上三角矩阵变成对称的 F=triu(F,-1)+tril(F',0) ...
  • matlab标定及三维重建程序对C:\Program Files\MATLAB\R2014a\toolbox\vision\visiondemos\calibration\stereo文件夹下的
  • <p><img alt="" height="710" src=...
  • 代码是一本书上的,对于自己的数据进行了部分修改,一直出现索引大于矩阵维度的错误。代码如下: d=load('data.txt'); path=[];long=inf; rand('state',sum(clock)); for j=1:1000 path0=[1 1+randperm(50)...
  • 学习问题:使用MATLAB工具箱进行双目标定,提示索引超出矩阵范围。
  • 用的matlabR2016a,10.3.1得工具箱,尝试过更改工作区间,发现大部分会报错。 以下为源代码: clear; clc; z0=0; z1=0; %随机产生位置点,求该点位置逆解,再求该点对应的角度矩阵 随机点往往在实际工作空间内,但不...
  • 今天看代码时,遇到了一个令我有点惊讶的一个赋值问题。 虽然是一个很小很小的问题,很多人可能都不会...%a(10:13) %若不赋值,只是通过下标访问数组 则会出现错误:索引超出矩阵维度。 %%%%上边所示都是一维数组 b=[1
  • matlab

    2020-05-13 20:49:46
    matlab 索引超出矩阵维度 现在在学习matlab复现公式,出现了一些问题,想请大神帮忙看一看。 function time = producedelay(Sortmatix1,aerfa_1_1,F,f) global B W W1 N0 d M OMEGA task omega Sortmatix0 power1 ...
  • ``` clear all; clc; % 读入人口数据(1971 - 2000年) Y = [33815 33981 34004 34212 34327 34344 34458 34498 34476 ...索引超出矩阵维度 出错 test1(line12) y(t) = 1/Y(t,1); ” 大佬们,怎么搞哇!
  • MATLAB程序可编译成供C#调用的程序集即DLL文件,但MATLAB与C#的数据类型和结构存在着很大的差异,为了解决差异性问题,MATLAB提供了MathWorks.MATLAB.NET.Arrays了命名空间中一系列的类型转换方法,详见:Matlab官方...
  • 文章目录运算转置矩阵矩阵标准矩阵乘法元素级乘法复数操作获取尺寸数组索引串联 矩阵与向量的创建在上一篇文章中已经提到,所以这里直接进行操作和运算 运算 现有一矩阵a: >> a = [1 2 3; 4 5 6; 7 8 10] a ...
  • matlab 函数索引

    2009-05-12 13:07:34
    matlab 函数索引 一个个自己总结的 看看吧

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 327
精华内容 130
关键字:

matlab索引超出矩阵维度

matlab 订阅