求指导matlab变量写入矩阵

E1(1)=100;E2(1)=50;fori=1:1:9;V1(i)=3*E1(i);E1(i)=V1(i).*E1(i)+1./V1(i);E1(i+1)=500-E... E1(1) = 100;
E2(1) = 50;

for i = 1:1:9;

V1(i) = 3*E1(i);
E1(i) = V1(i).*E1(i) + 1./V1(i);
E1(i +1) = 500 - E2(i);
end

只有将E1(i)。E2(i)i.V1(i)变为矩阵for才进入循环,求高手指教
展开
 我来答
柘熏
推荐于2016-07-05 · TA获得超过374个赞
知道小有建树答主
回答量:154
采纳率:0%
帮助的人:140万
展开全部

你是刚学matlab吧,matlab基本的语法你好像还不太明白呢

我给你解释下

  1. E1(1)=100 首先这样声明变量很不可取,如果你想声明一个标量请写成E1=100的形式。

    如果声明为矩阵这样写E1=[1,2;3,4],逗号表示同一行,分好数据换行。

  2. 写成如 i=1:9这样的语句默认步长就是1,没有必要写成1:1:9。

  3. 矩阵中的元素引用格式为M(i,j),表示矩阵M中第i行j列元素。向量引用可以直接用V(i),表示向量中的第i个元素。

  4. .*和./表示向量对应元素相乘或相除,运算要求两个向量长度一致。

    如[1;2].*[3;4]=[3;8]

好了,现在来看你的代码:

E1(1) = 100;
E2(1) = 50;

这两步的意思是将向量E1,E2的第一个元素置为100,50。如果运行这段脚本之前你的workspace中包含名为E1,E2两个向量,那么将对你的程序造成很大影响。

再来看循环

for i = 1:1:9;
    V1(i) = 3*E1(i);
    E1(i) = V1(i).*E1(i) + 1./V1(i);
    E1(i +1) = 500 - E2(i); 
end

i=1的时候循环内部是没有问题的,可以运行。但是当i=2的时候,循环中最后一条语句会执行

E1(3) = 500 - E2(2);

这时候问题就出现了,因为根据之前的定义E2是一个标量,因此当程序执行到这一步就会报错,E2数组下标越界。

好了,那么还有什么不明白的吗?

PS:建议你找本matlab的书看看,《高等应用数学问题的MATLAB求解》这本书就不错,我当初开始学的时候是看的这本。希望对你有帮助

更多追问追答
追问
谢谢您的回答,我确实是一个初学者,所以有好多地方看不太明白,我定义E1(1)和E2(1)是因为这只是我的程序的一部分,因为E1和E2代表不同物品的同一性质。那个for的步长1:1:9只是为了自己阅读方便而已。
最终要的是我知道E2(2)被我定义成为了一个标量,但是我还不知道怎么改,所以我认为如果E2(i)和E1(i)都变成矩阵应该问题就解决了,只是我不知道怎么改
追答
你的问题是循环过程没弄清楚:

循环共执行9次,每次执行循环分别需要E2(1),E2(2),E2(3),E2(4),E2(5),E2(6),E2(7),E2(8),E2(9)。

然后你的程序中E2(2),E2(3),E2(4),E2(5),E2(6),E2(7),E2(8),E2(9)这些元素都是缺失的。


循环根据需要可以做如下修改:

  1. 将向量E2根据算法定义补充完整。

  2. 如果每次循环中所需要的E2中的元素是一样的,那么直接将循环中第三句改为

    E1(i +1) = 500 - E2;

    就可以了。

东莞大凡
2024-08-07 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进... 点击进入详情页
本回答由东莞大凡提供
liuxinnan1103
2014-08-17 · 超过28用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:47.9万
展开全部
不是很清楚你说的是什么意思
更多追问追答
追问
就是这个程序运行的时候是出错的,因为for只循环一次,我想问怎么让它进入循环
追答
根本原因是for循环里的E1,E2是个数组,而之前定义的是个数,尺寸不对,肯定无法进行循环。
方案1:E1,E2做成数组zeros(1,9),E1(1)=100;E2(1)=50;
方案2:循环里面的数组不要用E1,E2这个名字,换个名字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式