鱼C论坛

 找回密码
 立即注册
查看: 1064|回复: 7

利用循环语句给向量元素赋值时为什么要找一个中间变量?

[复制链接]
头像被屏蔽
发表于 2023-6-27 04:32:16 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-27 07:24:24 | 显示全部楼层
我没有学过楼主的语言,但问题我基本了解
你可以把第7行与第8行合并为一行代码
numvec(iv)=nput (' Enter a number :') ;
所以说你可以理解成 inputnum 这个变量多余,至少在这段代码中是这样的。

总之,怎么写都行,但是使用变量方便多次调用,不同写法各有利弊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-27 08:14:15 | 显示全部楼层
本帖最后由 歌者文明清理员 于 2023-6-27 08:15 编辑

在给出的代码中,inputnum变量的作用是在循环过程中接收用户输入的数字。通过将用户输入的数字存储在numvec向量中,最终返回一个长度为n的数字向量。

增加一个inputnum变量的目的是为了使代码更具可读性和可维护性。通过将用户输入的数字存储在inputnum变量中,代码可以清晰地表达其意图,即"输入一个数字"。同时,这也可以使代码更易于修改和调试。

虽然在代码中使用了额外的变量inputnum,但在实际执行过程中,并没有浪费多余的内存空间或造成性能损失。因此,在这种情况下,增加一个过度变量并不算多余,而是为了提高代码的可读性和可维护性。

详细解释:

让我试着用更简单的方式来解释。

在这个代码中,inputnum 是一个临时变量,用于存储用户输入的数字。它的作用是在每次循环迭代时,接受用户输入的数字,并将其赋值给 numvec 向量的相应位置。

为什么要使用 inputnum 做过度呢?主要有两个原因:

  • 可读性:通过使用一个有描述性的变量名(inputnum),我们可以清晰地理解该变量的作用。这样,当我们阅读代码时,就能够更容易地理解代码的意图。
  • 可扩展性:如果以后需要对代码进行修改或添加其他功能,使用 inputnum 这个中间变量会更加方便。如果直接将用户输入的数字存储在 numvec 中,那么在代码的其他部分可能会变得更加复杂。而使用一个中间变量可以使代码更具可扩展性,更容易进行修改和调试。


简而言之,增加一个 inputnum 变量并不是多余的,而是为了提高代码的可读性和可维护性。虽然它占用了一点额外的内存空间,但这种开销通常可以忽略不计,并不会对代码的性能产生显著影响。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-27 09:35:23 | 显示全部楼层
在你给出的这个MATLAB代码例子中,使用中间变量 inputnum 的目的主要是为了提高代码的可读性和可理解性。

在该函数中,用户被提示输入一个数,这个数被存储在 inputnum 变量中。然后,这个变量的值被赋予 numvec 向量的相应元素。这种写法使得代码更易读和理解,因为 inputnum 明确指出了这是用户输入的数字,而不是直接赋值给 numvec(iv) ,这样的代码可能会对其他人或者未来的你产生混淆。

然而,实际上,你完全可以省略 inputnum 变量,直接将用户的输入赋值给向量的相应元素,代码如下:
function numvec = forinputvec(n)
% forinputvec results a vector of length n
% It prompts the user and puts n numbers into a vector
% Format : forinputvec(n)
numvec = zeros(1, n);
for iv = 1:n
    numvec(iv) = input('Enter a number:');
end
end

这种写法会使代码更简洁,但是可能会稍微降低一些代码的可读性。总的来说,这是一个权衡的问题,取决于你更重视代码的可读性还是代码的简洁性。

另外,需要注意的是,MATLAB代码的注释和代码之间应当有一个空格,因此在"% Format : forinputvec(n)"之前应当添加一个空格。另外,MATLAB中的for循环变量应从1开始,而不是l(小写的L)。最后,函数 zerod 似乎在MATLAB中不存在,可能你想使用的函数是 zeros 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2023-6-27 12:35:44 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-27 13:55:51 | 显示全部楼层

在这段代码中,`inputnum`变量的目的是为了临时存储用户输入的数字。它并不是多余的,而是必需的。

代码中的循环通过变量`iv`迭代从1到`n`,每次循环都会提示用户输入一个数字,并将用户输入的数字赋值给`inputnum`。然后,将`inputnum`的值存储在向量`numvec`的第`iv`个位置上,以便最终得到一个长度为`n`的数字向量。

换句话说,变量`inputnum`起到了提供一个临时存储位置的作用,它帮助我们在循环中接收不同的用户输入数字,然后将这些数字逐个放入到向量`numvec`中。

因此,变量`inputnum`在这段代码中是必要的,没有多余。它充当了在循环过程中暂时保存用户输入数字的容器。

去掉,也可以,比如这样:
function numvec = forinputvec(n)
% forinputvec results a vector of length n
% It prompts the user and puts n numbers into a vector
% Format : forinputvec(n)
numvec = zeros(1, n);
for iv = 1:n
    numvec(iv) = input('Enter a number:');
end
end

求最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2023-6-27 14:15:16 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-27 14:16:49 | 显示全部楼层
boluobenbo 发表于 2023-6-27 14:15
谢谢回复。但是你的意思我有点没理解。你前面说“它并不是多余的,而是必需的。”  。后面又说“去掉,也 ...

都行,
不去掉的话因为这个并不是多余的。

去掉的话好处就是简洁,坏处就是减少可读性
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 09:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表