为什么我接收错误”数组索引必须是正整数或逻辑值。”?

1视图(30天)
我想画出偶极天线的电流分布。我越来越错误”数组索引必须是正整数或逻辑值。”I want to obtain the current distributions for l=0.25λ,0.5λ,0.75λ,λ,1.25λ,1.5λ,1.75λ and 2λ. Here is my code:
z = 0:0.25:2;
l = 0.5;% (l变化所需的值)
k = 2π*;
我= 0(1、长度(z));
I0 = 1;
我= 0 z < < = = l / 2;
我(我)= I0 * sin (k (l / 2 - z));%定义我(z)
结束
我= - l / 2 z < < = = 0;
我(我)= I0 * sin (k (l / 2 + z));
结束
图(1)
情节(z,我);%绘制矩形
标题(的电流分布);
包含(“z坐标(λ)”);
ylabel (目前,我);

接受的答案

骑自行车的人
骑自行车的人 2021年9月20日
这是一个完全不同的策略,我认为不太令人困惑,因为你只是定义的函数 我(z) 更自然的你,不必担心索引的问题
%定义参数
l = 0.5;% (l变化所需的值)
k0 = 2 *π;
I0 = 1;
%为z定义绘图范围
z = - l / 2: l / 100 l / 2;
%定义匿名函数(z)
我= @ (z) (z > = 0)。* I0。*罪(k0 * (l / 2 z)) + (z < 0)。* I0。*罪(k0 * (l / 2 + z));
%的阴谋
情节(z,我(z))
标题(的电流分布);
包含(“z坐标(λ)”);
ylabel (目前,我);
1评论
Deniz杜兰
Deniz杜兰 2021年9月20日
它不是一个作业先生。我只是想实现理论学习在课堂上Matlab更好地理解理论和尝试学习Matlab与我一同前进。你的代码具有很重要的意义!谢谢你contrubuting我的学习旅程。

登录置评。

更多的答案(2)

骑自行车的人
骑自行车的人 2021年9月19日
编辑:骑自行车的人 2021年9月19日
你至少有两个问题与你的代码。首先,你需要一个显式的乘法在这些线:
我(我)= I0 * sin (k * (l / 2 - z));%添加*
我(我)= I0 * sin (k * (l / 2 + z));
第二,你的for循环是不明确的,因为可能不做你想做的事情。你不能指定一系列的z值有:
我= 0 z < < = = l / 2;
相反,你需要一些更像
我= z * l%我认为这也许是你要表达什么?步骤是分数的λ(左)
在这个语法, 要遍历的值向量 z l *
2的评论
骑自行车的人
骑自行车的人 2021年9月20日
编辑:骑自行车的人 2021年9月20日
好了,这暴露了另一个错误,我错过了第一次,那就是你使用循环变量的零值和分数,然后尝试使用这些索引向量。没有任何意义(链接 @Image分析师 共享解释)。
我将添加另一个答案。
出于好奇,这是作业吗?

登录置评。


社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!