我是matlab的新手,正在做一个学校项目。 我将excel表中的一些数据导入到我的matlab中。
销售(销售汽车)的B栏:
20855
57531
180033
175165
109924
62130
144411
46403
来自模型(销售价格)的D栏:
1.7707e+05
2.0652e+05
182407
157591
1.4868e+05
2.0829e+05
1.7230e+05
1.7131e+05
您可以在此处查看导入:
global Models Production Sales;
[~, ~, Production]=xlsread('data/Production.xlsx');
[~, ~, Models]=xlsread('data/Models.xlsx');
[sP] = cell2mat(Models(2:size(Models),4))
[ppy] = cell2mat(Production(2:size(Production),2))
然后我需要计算总销售额。 我这样做是为了做到这一点:
[sP] = cell2mat(Models(2:size(Models),4))
[spy] = cell2mat(Sales(2:size(Sales),2))
car1 = spy(1).* sP (1)
car2 = spy(2).* sP (2)
car3 = spy(3).* sP (3)
car4 = spy(4).* sP (4)
car5 = spy(5).* sP (5)
car6 = spy(6).* sP (6)
car7 = spy(7).* sP (7)
car8 = spy(8).* sP (8)
sumCar = car1+car2+car3+car4+car5+car6+car7+car8
sP = salesprice spy =每年的销售额
正如您所看到的,这是一种非常手动的方法,如果将car9引入电子表格,我需要更新代码。
所以,如果有一种方法可以通过包含一个循环并迭代我的列来实现这个目的,那么我很喜欢吗?
答案 0 :(得分:1)
我对MATLAB也比较陌生,但我很确定你可以使用for循环。 像这样:
for i1 = 1:length(spy)
car(i1) = spy(i1).* sP(i1);
sumCar = sumCar + car(i1);
end
首先在循环中尝试不使用sumCar,检查循环是否有效,然后添加sumCar的代码。
如果它不能用于循环,我认为你可以这样做:
sumCar = sum(car);
这将沿一个维度将数组/向量中的所有元素一起添加。所以只要矢量是一维的,它就应该工作。
您可以查看here了解详情。
希望在某种程度上有所帮助。
答案 1 :(得分:0)
我定义了像这样的载体
sP = [20855 57531 180033 175165 109924 62130 144411 46403];
spy = [1.77E+09 2.07E+09 182407 157591 1.49E+09 2.08E+09 1.72E+09 1.71E+09]
然后这样做,更快更容易:
sumCar = spy * sP';
它使用Matlab的Matrix Multiplication。