How to solve loop equation with given data

1 次查看(过去 30 天)
Dear all,
I want to solve the equation below.
first column of excel sheet is 'a' and 2nd column is 'b' coresponding to 'a'. For each a, there is m in the interval 0 to 3 with increment of 0.01 (m=0:0.01:3). How to solve ?
  6 个评论
Manish Kumar
Manish Kumar 2019-3-13
I have tried
m = 0:0.01:1
eff = zeros(421,301)
for i=1:421
eff(i,:) = ((0.65.*(a(i)-m-0.3).*b(i)))./10 ;
end
xlswrite ('1.xlsx',[a(:),m(:),eff(:)]);
error is coming:
Unable to perform assignment because the indices on the left side are not
compatible with the size of the right side.
Adam Danz
Adam Danz 2019-3-13
The reason it stopped working is because you changed the size of 'm' but didn't change the size of 'eff'. I added a solution below that corrects this and allows you to use any size of 'm' without needing to change the size of 'eff'.

请先登录,再进行评论。

回答(1 个)

Adam Danz
Adam Danz 2019-3-13
编辑:Adam Danz 2019-3-25
(continuing from the comments under the question to that the question is answered).
The more responsible way to initialize the loop variable is by using variables rather than hard-coding the variable size.
a = 1:1000;
b = 1:1000;
m = 0:0.01:3
n = 421; %number of loops
eff = zeros(n,length(m)) %here we use 'n' and the size of 'm' to define 'eff'
for i=1:n
eff(i,:) = ((0.65.*(a(i)-m-0.3).*b(i)))./10 ;
end

类别

Help CenterFile Exchange 中查找有关 Sources 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by