我是靠谱客的博主 美丽魔镜,最近开发中收集的这篇文章主要介绍while循環matlab题目,Matlab 中while循环语句的用法?,关于matlab中的循环语句while和for的提问:我想写...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

导航:网站首页 >

Matlab 中while循环语句的用法?,关于matlab中的循环语句while和for的提问:我想写

Matlab 中while循环语句的用法?,关于matlab中的循环语句while和for的提问:我想写出6*6的Hilber矩阵...

匿名网友:

用法如下:MATLAB中while循环的语法是 while end只要表达式expression为true,while循环将重复执行程序语句statements。

当结果为非空并且包含所有非零元素逻辑或实数时,表达式expression为true。

否则,表达式expression为false。

扩展资料:循环语句种类如下一、计次循环循环体内的命令重复执行指定的次数。

提供的整数参数值决定将重复执行的次数。

计次循环首 循环次数, 已循环次数变量计次循环尾 二、判断循环根据提供的逻辑参数的值,来决定是否进入循环。

如果提供的逻辑参数值为真,程序顺序执行下一条命令进入循环,否则跳转到本命令所对应的“判断循环尾”命令的下一条命令处以跳出循环。

判断循环首条件判断循环尾 三、循环判断循环判断尾为循环的条件所在,根据提供的逻辑参数的值,来决定是否返回到循环首部继续进行循环。

如果提供的逻辑参数值为真,程序返回到对应的“循环判断首”命令处继续进行循环,否则顺序执行下一条命令退出本程序循环。

循环判断首 循环判断尾 条件参考资料:百度百科 循环语句

匿名网友:

就这种结构而言,是使用形式上的死循环,然后用if进行判断,在满足某个条件时用break跳出循环。

第一段代码也可以改写成:fid = fopen('fgetl.m');tline = fgetl(fid);while ischar(tline)disp(tline)tline = fgetl(fid);endfclose(fid);二者作用是完全相同的。

两段代码都是逐行读文本文件,差别只是第一个读出来之后就显示,而第二个读出来之后转换为数据存储到数组中而已。

匿名网友:

一、基本技术 ----------------------------------------------------- 1)MATLAB索引或引用MATLAB Indexing or Referencing 在MATLAB中有三种基本方法可以选取一个矩阵的子阵。

它们分别是 下标法,线性法和逻辑法subscripted, linear, and logical。

如果你已经熟悉这个内容,请跳过本节 1.1下标法 非常简单,看几个例子就好。

A = 6:12; A(3,5) ans = 8 10 A(3:2:end) ans = 8 10 12 A = 11 14 17; ... 12 15 18; ... 13 16 19; A(2:3,2) ans = 15 16 1.2线性法 二维矩阵以列优先顺序可以线性展开,可以通过现行展开后的元素序号 来访问元素。

A = 11 14 17; ... 12 15 18; ... 13 16 19; A(6) ans = 16 A(3,1,8) ans = 13 11 18 A(3;1;8) ans = 13 11 18 1.3逻辑法 用一个和原矩阵具有相同尺寸的0-1矩阵,可以索引元素。

在某个 位置上为1表示选取元素,否则不选。

得到的结果是一个向量。

A = 6:10; A(logical(0 0 1 0 1)) ans = 8 10 A = 1 2 3 4; B = 1 0 0 1; A(logical(B)) ans = 1 4 ----------------------------------------------------- 2数组操作和矩阵操作Array Operations vs. Matrix Operations 对矩阵的元素一个一个孤立进行的操作称作数组操作;而把矩阵视为 一个整体进行的运算则成为矩阵操作。

MATLAB运算符*,/,,^都是矩阵 运算,而相应的数组操作则是.*, ./, ., .^ A=1 0 ;0 1; B=0 1 ;1 0; A*B % 矩阵乘法 ans = 0 1 1 0 A.*B % A和B对应项相乘 ans = 0 0 0 0 ------------------------------------------------------ 3布朗数组操作Boolean Array Operations 对矩阵的比较运算是数组操作,也就是说,是对每个元素孤立进行的。

因此其结果就不是一个“真”或者“假”,而是一堆“真假”。

这个 结果就是布朗数组。

D = -0.2 1.0 1.5 3.0 -1.0 4.2 3.14; D >= 0 ans = 0 1 1 1 0 1 1 如果想选出D中的正元素: D = D(D>0) D = 1.0000 1.5000 3.0000 4.2000 3.1400 除此之外,MATLAB运算中会出现NaN,Inf,-Inf。

对它们的比较参见下例 Inf==Inf返回真 Inf<1返回假 NaN==NaN返回假 同时,可以用isinf,isnan判断,用法可以顾名思义。

在比较两个矩阵大小时,矩阵必须具有相同的尺寸,否则会报错。

这是 你用的上size和isequal,isequalwithequalnans(R13及以后).------------------------------------------------------ 4从向量构建矩阵Constructing Matrices from Vectors 在MATLAB中创建常数矩阵非常简单,大家经常使用的是: A = ones(5,5)*10 但你是否知道,这个乘法是不必要的? A = 10; A = A(ones(5,5)) A = 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 类似的例子还有: v = (1:5)'; n = 3; M = v(:,ones(n,1)) M = 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 事实上,上述过程还有一种更加容易理解的实现方法: A = repmat(10,5 5); M = repmat(1:5', 1,3); 其中repmat的含义是把一个矩阵重复平铺,生成较大矩阵。

更多详细情况,参见函数repmat和meshgrid.----------------------------------------------------- 5相关函数列表Utility Functions ones 全1矩阵 zeros 全0矩阵 reshape 修改矩阵形状 repmat 矩阵平铺 meshgrid 3维plot需要用到的X-Y网格矩阵 ndgrid n维plot需要用到的X-Y-Z...网格矩阵 filter 一维数字滤波器,当数组元素前后相关时特别有用。

cumsum 数组元素的逐步累计 cumprod 数组元素的逐步累计 eye 单位矩阵 diag 生成对角矩阵或者求矩阵对角线 spdiags 稀疏对角矩阵 gallery 不同类型矩阵库 pascal Pascal 矩阵 hankel Hankel 矩阵 toeplitz Toeplitz 矩阵 ========================================================== 二、扩充的例子 ------------------------------------------------------ 6作用于两个向量的矩阵函数 假设我们要计算两个变量的函数F F(x,y) = x*exp(-x^2 - y^2) 我们有一系列x值,保存在x向量中,同时我们还有一系列y值。

我们要对向量x上的每个点和向量y上的每个点计算F值。

换句话 说,我们要计算对于给定向量x和y的所确定的网格上的F值。

使用meshgrid,我们可以复制x和y来建立合适的输入向量。

然后 可以使用第2节中的方法来计算这个函数。

x = (-2:.2:2); y = (-1.5:.2:1.5)'; X,Y = meshgrid(x, y); F = X .* exp(-X.^2 - Y.^2); 如果函数F具有某些性质,你甚至可以不用meshgrid,比如 F(x,y) = x*y ,则可以直接用向量外积 x = (-2:2); y = (-1.5:.5:1.5); x'*y 在用两个向量建立矩阵时,在有些情况下,稀疏矩阵可以更加有 效地利用存储空间,并实现有效的算法。

我们将在第8节中以一个 实例来进行更详细地讨论. -------------------------------------------------------- 7排序、设置和计数Ordering, Setting, and Counting Operations 在迄今为止讨论过的例子中,对向量中一个元素的计算都是独立 于同一向量的其他元素的。

但是,在许多应用中,你要做的计算 则可能与其它元素密切相关。

例如,假设你用一个向量x来表示一 个集合。

不观察向量的其他元素,你并不知道某个元素是不是一 个冗余元素,并应该被去掉。

如何在不使用循环语句的情况下删除 冗余元素,至少在现在,并不是一个明显可以解决的问题。

解决这类问题需要相当的智巧。

以下介绍一些可用的基本工具 max 最大元素 min 最小元素 sort 递增排序 unique 寻找集合中互异元素去掉...

匿名网友:

这么简单还用问?while语句的功能是当条件满足是,执行其后面的语句,直到条件不再满足是,跳出while循环.在你的程序中,当满足a(i)==6条件时,执行下面的plot(2,3)命令,但执行该命令之后,a(i)==6的条件仍然满足,所以会继续执行下面的命令.你这里没有是条件变得不成立的条件,所以进入了死循环.你可以按ctrl+c键强制跳出循环结束程序.

匿名网友:

是死循环。

因为while语句中的循环变量i没有更新。

其实在matlab中,矩阵的运算功能非常强大,而且速度奇快。

建议一般不是迫不得已不要使用循环语句,因为它运行循环语句比直接操作矩阵速度慢很多。

这里是一个非常简单的实例,上例中的目的是为了统计向量a中不超过7的个数,下面的程序或许运行的效率更高:a=1 2 3 4 5 6 7 8 9;b=ac=sum(b);这里采用矩阵的关系运算很容易达到目的。

匿名网友:

matlab中 for循环是用来使一个结构循环的。

格式: for 循环变量=表达式1:表达式2:表达式3 循环体 end 【注】:表达式1:循环变量初值,表达式2:步长,为1时,可省略;表达式3:循环变量终值。

或: for循环变量=矩阵表达式 循环体 end 【注】:执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。

扩展资料: 其他类型的循环结构: C语言中的循环语句: C语言中提供四种循环,即goto循环、while循环、do…while循环和for循环。

四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误。

在学习中主要学习while、do…while、for三种循环。

常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用。

这就要清楚三种循环的格式和执行顺序,将每种循环的流程图理解透彻后就会明白如何替换使用。

如把while循环的例题,用for语句重新编写一个程序,这样能更好地理解它们的作用。

特别要注意在循环体内应包含趋于结束的语句即循环变量值的改变,否则就可能成了一个死循环,这是初学者的一个常见错误。

参考资料:百度百科- MATLAB 参考资料:百度百科-循环结构 ...

问题推荐

最后

以上就是美丽魔镜为你收集整理的while循環matlab题目,Matlab 中while循环语句的用法?,关于matlab中的循环语句while和for的提问:我想写...的全部内容,希望文章能够帮你解决while循環matlab题目,Matlab 中while循环语句的用法?,关于matlab中的循环语句while和for的提问:我想写...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部