Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 矩阵中的列数不同,如何使用分析方程中的每一列?_Matlab_Matrix_Indexing - Fatal编程技术网

Matlab 矩阵中的列数不同,如何使用分析方程中的每一列?

Matlab 矩阵中的列数不同,如何使用分析方程中的每一列?,matlab,matrix,indexing,Matlab,Matrix,Indexing,我正在生成矩阵,它们的列数各不相同,我需要对这些列中的每一列应用一些等式,并分别存储它们的结果(新矩阵中的不同列就可以了)。对于我的第一个等式,我取了矩阵的一些部分,并使用它们进行一些分析,例如: A1 = interpolate((817/2+.5):(908/2),:); B1 = interpolate((909/2+.5):(1000/2),:); averageB = sum(B1)/length(B1); averageA = sum(A1)/length(A1); tapWit

我正在生成矩阵,它们的列数各不相同,我需要对这些列中的每一列应用一些等式,并分别存储它们的结果(新矩阵中的不同列就可以了)。对于我的第一个等式,我取了矩阵的一些部分,并使用它们进行一些分析,例如:

A1 = interpolate((817/2+.5):(908/2),:);
B1 = interpolate((909/2+.5):(1000/2),:);

averageB = sum(B1)/length(B1);
averageA = sum(A1)/length(A1);

tapWithSign = (averageB - averageA) / (averageB + averageA / 2) * 100;

tapA1B1 = abs(tapWithSign);

我测试了我目前拥有的,它将这些特定部分正确地拉入一个新的矩阵。当我尝试将它们应用到等式中时,问题就出现了。当我应该有13个值时,它只给了我一个值(如果我有13列需要评估,则为13个值)

您的问题在于这行:

tapWithSign = (averageB - averageA) / (averageB + averageA / 2) * 100;
为了确保我有这个权利:
averageB
averageA
是具有维度(1,13)的向量。您希望
tapWithSign
具有与这些相同的尺寸

你需要做的是

tapWithSign = (averageB - averageA) ./ (averageB + averageA / 2) * 100;
您需要
/
而不是
/
A./B
的意思是“将A的每个元素除以B的每个元素,并将结果放入与A和B大小和形状相同的矩阵/向量中。”
A/B
是矩阵除法,您可以在matlab提示下键入
doc mrdivide
来准确读取它是什么


一旦
tapWithSign
具有正确的尺寸,
abs(tapWithSign)
也将如此。

从您的第一个代码示例来看,
tapA1B1
将是单值。如何将其应用于多个列?对于第二个代码示例,您希望它做什么,以及它在做什么?我只做了第一组。事实上,整个过程我都会上升到A11和B11。我知道tapA1B1将是一个单一的值,我通常在序列的末尾有11个值,但这只有一列数据。我现在在一个矩阵中有13列需要遍历,所以在它的末尾应该有143个值。(13列,每列11行)对于第二个代码示例,它将遍历整个列(因为在我的原始设置中只有一列)并执行该语句中的操作。所以我有一个矩阵,在一列中有5448个值。此代码将其降到5446(因为不能使用第一个和最后一个值)。我现在有13个列(可以多也可以少),需要它对每个列执行与使用单个列时相同的操作。13列,每列5446个值我唯一忘记做的就是最重要的一个=/lol和这样一个简单的解决方案。非常感谢。你对第二个方程式有什么意见吗?@BenB。你为什么不在第一个方程式固定的情况下研究第二个方程式,如果你仍然没有它,那么再回来问一个更清楚的问题。我很难从那里猜出你在做什么。我将在一篇新的文章中重新问一下第二部分,有更明确的需求。目前正在编辑代码并进行迄今为止所做的更改。谢谢你的快速修复。