我有一个问题我的代码,它将正常工作,但结果并不正确,因为代码不兼容方程. .下面的描述

1视图(30天)
clc;
清晰;
M = 60;
N = 36;
K = 5;
x =兰德(1,N);
θ=(2 *π)* x;%生成随机
φ=诊断接头(exp(我*θ));% NxN
H_hermitian = randn (N, M) + i * randn (N, M);% NxM矩阵.........(h_n)厄米= 1 xm H_hermitian表示每一行
G = randn (K, N) + i * randn (K, N);% KxN .........g = 1 xn和表示每一行的g . .g *资料片
H_dk = randn (K、M) + i * randn (K、M);% KxM .........h_dk = 1表示每行h_dk xm
HT = H_dk + G *φ* H;% KxM . .这个矩阵计算后需要更新新的θ通过更新φ。
W = pinv (HT);% MxK .........w = mx₁. .更新HT意味着更新W,这是我所需要的东西
7评论

登录置评。

答案(1)

约翰D 'Errico
约翰D 'Errico 2021年7月2日
编辑:约翰D 'Errico 2021年7月2日
这是其中的一个问题,往往会憔悴没有回答。为什么?因为你刚刚说你的代码不工作,不会产生正确的结果。我们看到一个复杂的代码,没有太多的评论你做什么。更糟糕的是,这些评论似乎毫无意义。例如,我看到:
Alfa_i (t) = 0;
t2 = 1: K
Alfa_i (t) = Alfa_i (t) + 1 / (abs (H_dk (t2,:) * W (:, t2)));
结束
Alfa_i (t) = Alfa_i (t) - Alfa_k (t);% Alfa_i之和
结束
显然发生了一笔,但exctly总结不是Alpha_i。在最好的情况下,Alpha_i求和的结果。
这是唯一的评论在整个代码中。哦。另一个,你告诉读者完全显而易见的:
G = G (idx:);使用排序idx %排序整个矩阵
我可能比较代码维护。在一些300行代码,只有一个评论。在一个代码块,一个矩阵称为C显然,唯一的评论是:“创建C矩阵”。没有信息提供C意味着什么,或者会做什么。你的代码几乎是类似的。和你想让我们阅读代码和调试它,只知道它可能不正常工作对一些ungiven原因吗?
那么我们必须猜错了。是的,这是应该遵循给定的伪代码。但是我们必须潜水深入代码写的你,找出问题在哪里,当没有人甚至说它错了。需要一些运气,有人徘徊的人很多时间浪费可能没有成功。
如果你需要帮助,那么我首先解释清楚回答你认为它应该生产什么。然后解释它产生,为什么你认为这是一个问题。记住,如果你去看医生,告诉他们,你的腿没有受伤,他们能知道是什么原因你去看他们,或者如何帮助你?
更好的方法是帮助自己。从它包含提取这段代码。使用代码,通过提供一个简单的示例问题,你会知道答案,只是这段代码应该正确地执行。它工作吗?如果不是,那么你可以瘦的原因。顺便说一下,这就是为什么模块化代码是有价值的。你可以测试每一块。从不匆匆拼凑成一个巨大的混乱的代码,第一次希望一切工作。编写代码在小片段。测试每一个这样的代码片段。 Only when they all work as you know they should do you build the larger code.
接下来,学习使用调试器!跟踪代码。检查每一行代码。它做你期望它做样本子问题我建议你制定吗?
所以我很抱歉,这不是一个答案,因为我认为答案是真的不可能的。你是最好的人来解决这个问题。最激励你想解决它,花几个小时可能是跟踪这个问题。我记得我浪费青春的一句话:“上帝帮助那些帮助自己的人。”At the very least, make it possible for someone to help you. Good luck.
1评论
马太福音工作者
马太福音工作者 2021年7月2日
先生谢谢你的回应。
我认为我写的都需要计算这些方程的矩阵。
我只是不知道如何做这些循环。
我试图这样做太多次以不同的方式,但我想我的代码是不兼容的循环。
我写了一个简短的描述在每一行前面和我删除其余的代码

登录置评。

类别

找到更多的在循环和条件语句帮助中心文件交换

s manbetx 845


释放

R2021a

社区寻宝

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

开始狩猎!