通过数学运算创建一个带有for循环的向量

9个视图(过去30天)
w=[5 4 3 2]
在数学表达式中使用此向量可创建以下向量:
下面是我的代码片段,这个问题的代码。当我运行它时,我无法得到预期的结果。我只想创建一个如上所述的向量。我如何解决这个问题?
w=[5 4 3 2]
对于i=w
a3=[1/(i+i)]
b3=[i^i]
c3=[i/sqrt(i)]
d3=[(i^2)/(i^i)]
终止

公认的答案

KSSV
KSSV 2020年5月10日
阅读有关元素对元素的操作。
w=[54 3 2];
a=1./(w+w);
b=w.^w;
c=w./sqrt(w);
d=w.^2./w.^w;

更多答案(1)

托德
托德 2020年5月10日
要修复当前代码,需要在for循环中使用索引。
w=[5 4 3 2]
对于i=w
a3(6-i)=[1/(i+i)]
b3(6-i)=[i^i]
c3(6-i)=[i/sqrt(i)]
d3(6-i)=[(i^2)/(i^i)]
终止
此分配 a3(1) 在第一个循环中, a3(2) 在第二种情况下,等等。代码重新分配标量 a3 每个循环。我使用的索引有些奇怪,因为我们正在循环 W ,这很好,它只是让指数更难跟踪。您可以通过使用计数器进行不同的操作:
w=[5 4 3 2]
j=1
对于i=w
a3(j)=[1/(i+i)]
b3(j)=[i^i]
c3(j)=[i/sqrt(i)]
d3(j)=[(i^2)/(i^i)]
j=j+1
终止
或者您可以从中获取for循环计数 1. 4. :
w=[5 4 3 2]
对于i=1:4
a3(i)=[1/(w(i)+w(i))]
b3(i)=[w(i)^w(i)]
c3(i)=[w(i)/sqrt(w(i))]
d3(i)=[(w(i)^2)/(w(i)^w(i))]
终止
综上所述,我建议尽可能对代码进行“矢量化”。点运算符逐元素执行算术运算,请参阅点乘法文档 在这里 . 比如说整个 a3 向量可以这样定义:
a3=1./(2*w)
3评论
哈桑·伯克·班科格鲁
哈桑·伯克·班科格鲁 2020年5月12日
当我运行这些代码或我的代码时,我得到了下面的输出;但是,我只需要一个a3,b3,c3,d3作为提交的照片输出。我想这是关于for loop的工作风格。它给出了w的元素数。
w= 1×4
5 4 3 2
a3= 1×4
0.1000 0.1250 0.1667 0.2500
b3= 1×4
3125 256 27 4
c3= 1×4
2.2361 2.0000 1.7321 1.4142
d3= 1×4
0.0080 0.0625 0.3333 1.0000
a3= 1×4
0.1000 0.1250 0.1667 0.2500
b3= 1×4
3125 256 27 4
c3= 1×4
2.2361 2.0000 1.7321 1.4142
d3= 1×4
0.0080 0.0625 0.3333 1.0000
a3= 1×4
0.1000 0.1250 0.1667 0.2500
b3= 1×4
3125 256 27 4
c3= 1×4
2.2361 2.0000 1.7321 1.4142
d3= 1×4
0.0080 0.0625 0.3333 1.0000
a3= 1×4
0.1000 0.1250 0.1667 0.2500
b3= 1×4
3125 256 27 4
c3= 1×4
2.2361 2.0000 1.7321 1.4142
d3= 1×4
0.0080 0.0625 0.3333 1.0000

登录以发表评论。

下载188bet金宝搏

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始打猎吧!