matlab问题:a=[1,1]; for k=3:100, a(k)=a(k-1)+a(k-2); end
clear;clc;
a(1)=1; %初值
a(2)=1;
for i=1:30;
a(i+2)=a(i+1)+a(i); %递推公式
end
k=min(find(a>10000)); %找出第一个大于10000的元素
b=num2str(k);
c=num2str(a(k));
['a(',b,')=',c]
楼主是要改错么?
你的B定义成向量了,不是矩阵,所以B(i,k)会出错.
是不是你定义错了,想这么定义:
A=[1 2 1; 2 2 3; -1 -3 0];
b=[0; 3; 2];
若还有问题请追问
a=[1,1];定义了一个1x2的数组,定义数组时数据成员之间可以用逗号隔开或者是直接空格。当数据成员间使用分号隔开时,表示换行。利用a=[1,1;1,1;1,1];定义的是一个3x1的数组,数组有三行,每行有三个数据成员。
for k=3:100
a(k)=a(k-1)+a(k-2);
end
这是一个循环,在Matlab中循环的形式有三种,for,while,do...while。这是最常用的for循环。与c++不同,循环条件无需加括号。for k=3:100 表示循环从k=2一直循环到k=100,也就是说a(k)=a(k-1)+a(k-2)表示对a(3)到a(100)进行了赋值,例如a(3)=a(2)+a(1);也就是一共有98个循环步,
a(3)=a(2)+a(1);
a(4)=a(3)+a(2);
...
a(100)=a(99)+a(98);
for语句的调用格式是
FOR variable = expr, statement, ..., statement END
其中expr是一个数组,variable依次从数组的第一个成员到最后一个成员进行取值,每次取值进行一次循环,也就是运行 statement的内容。3:100定义的是一个数组3,4,5,6...99,100的数组,循环过程k依次对这个数组取值。
Matlab的数组不像c++里面是预定义固定的,而是在运行过程中可变的,a=[1,1];定义了一个1x2的数组,但是由于在运行过程中有调用到a(3)到a(100)这些都是没有预定义的范围,但是由于Matlab本身这种特性,因此数组本身是可以扩充的,甚至可以改变数据类型。
a=[1,1]; %a(1)=1,a(2)=1
for k=3:100,%从k=3到100循环
a(k)=a(k-1)+a(k-2); %a的第k项等于前两项的和
end
%c语言不一样,matlab不需要先为变量分配空间就可以使用
%a在每次循环的时候长度都会增加,matlab自动为期分配内存
%但是这也是不好的,频繁改变变量长度会消耗额外的分配内存的大小
%如果知道变量的具体长度,还是先分配空间比较好
%可在程序第一句加一句a=zeros(100,1);
就是生成斐波那契数列嘛。
第一句初始化a,是个数组
第二句是个for循环,k从3循环到100,每次令a(k)=a(k-1)+a(k-2)。a这个数组的大小是随着k的增长而增长的。第三句结束循环就不说了。
a=[1,1] ; 初始化数组
for k=3:100
a(k)=a(k-1)+a(k-2);
end 这是一个for循环 从第三个数开始,每个数等于前面两个数的和
Matlab中,数组的大小是可扩展的
这是个 非波那契数列的程序
matlab问题:a=[1,1]; for k=3:100, a(k)=a(k-1)+a(k-2); end
a=[1,1];定义了一个1x2的数组,定义数组时数据成员之间可以用逗号隔开或者是直接空格。当数据成员间使用分号隔开时,表示换行。利用a=[1,1;1,1;1,1];定义的是一个3x1的数组,数组有三行,每行有三个数据成员。for k=3:100 a(k)=a(k-1)+a(k-2);end 这是一个循环,在Matlab中循...
Matlab中,已知向量a=【1 1 1】,运行“poly(a)”得到结果为多少_百度知 ...
运行结果为:>> a=[1,1,1];>> poly(a)ans = 1 -3 3 -1因为poly()表示用给定的参数为多项式的方程的根来构造多项式,那么上面的代码表示一个多项式方程有三个相等的实根1,也就是f(x)=(x-1)^3=x^3-3x^2+3x-1,其系数就是:1 -3 3 -1 ...
紧急!!!用MATLAB怎么使两个矩阵互溶成一个
b=[4 5 5 6 6 7;4 5 5 6 6 7;4 5 5 6 6 7;7 8 8 9 9 0;7 8 8 9 9 0;7 8 8 9 9 0;1 2 2 3 3 4;1 2 2 3 3 4;1 2 2 3 3 4];tempb1=b(:,1:2);tempb2=b(:,3:4);tempb3=b(:,5:6);tempa1=a(:,1:3);tempa2=a(:,4:6);tempa3=a(:...
matlab如何为每列添加一个新数,值可以全部一样。 例如:a=[1,3;2...
直接写a(3,:)=[1,1];表示第三行加一行[1,1]若都是最后一行 则用a(end+1,:)=[1,1]end表示a的最后一行 end+1就是加一行了
matlab 怎么修改下面的程序 a=[1 1 2;1 2 3]; for i=1:2 b(:,i)=f...
你i=1时find(a==i) 有1 2 3,你i=2时find(a==i) 有4 5 两者不能同时放在b中,数组维数不同;如果你一定要放在一个变量里面,可以这样 b=zeros(6);for i=1:2 t=find(a==i)if length(t)>0 for j=1:length(t)b(j,i)=t(j)end end end 结果:b = 1 4 0 ...
《matlab》怎么让二值图像中0变成1,1变成0?
很简单,matlab专门提供了一种取反操作,就是符号“~”,就是数字键1左边的那个键的上档键,比如a=[1,1,1;0,0,0];那么b=~a的结果就是b=[0,0,0;1,1,1];如果是二值图像,也这样做就行了。
Matlab中,一个行向量怎么赋值给矩阵的一行啊!
1、可以通过zeros函数进行赋值,输入a=zeros(2,3),生成了一个全0矩阵,如下图所示:2、可以直接使用a(1,3)=5方式进行矩阵赋值,a矩阵第1行第3列赋值成5了,如下图所示:3、使用 a(3)=8方式进行赋值,矩阵第3个元素赋值为8,从列开始往下数,如下图所示:4、使用a(1,:)=[1 1 1]方式...
关于MATLAB的小问题,如何使用一个变量label删除向量的特定值?_百度知 ...
不知道你说的设置label是什么意思,如果要删除a中所有等于2的元素,使用逻辑索引就可以,参考示例代码:>> a=[1 1 1 2 2 2 3 3 3]a = 1 1 1 2 2 2 3 3 3>> a = a(a~=2) % 引用a中不等于2的元素,即删除了等于2的元素a = 1 1 1 ...
怎么用matlab对一组数据,比如a=[1,2,3,4,5,6,7,9]先求和再求平均值...
for i=1:n suma=suma+a(i);end suma avera=suma\/n 如果要将上面打包成函数,在行首加一下,形成:function [suma,avera]=myfun(a)suma=0;n=length(a);for i=1:n suma=suma+a(i);end suma avera=suma\/n 主函数调用:a=[1,2,3,4,5,6,7,9];[sa,aa]=myfun(a)如果用函数...
matlab求解 a=[1,-1,2]; b=[1,1,1]; impz(b,a)
就是那样写的:a=[1,-1,2]; b=[1,1,1]; impz(b,a)传有图片