Why the function or variable A is not recognized?
显示 更早的评论
function [L, U] = lu_nopivot (A)
n = size(A, 1);
L = eye(n);
for k = 1 : n
L(k + 1 : n, k) = A(k + 1 : n, k) / A(k, k);
for l = k + 1 : n
A(l, :) = A(l, :) - L(l, k) * A(k, :);
end
end
U = A;
end

采纳的回答
You have not defined A in the base workspace, so it does not exist for you to be able to pass its value into the function.
3 个评论
How can I define A in the script? what should I type
Example:
A = magic(11)
A = 11×11
68 81 94 107 120 1 14 27 40 53 66
80 93 106 119 11 13 26 39 52 65 67
92 105 118 10 12 25 38 51 64 77 79
104 117 9 22 24 37 50 63 76 78 91
116 8 21 23 36 49 62 75 88 90 103
7 20 33 35 48 61 74 87 89 102 115
19 32 34 47 60 73 86 99 101 114 6
31 44 46 59 72 85 98 100 113 5 18
43 45 58 71 84 97 110 112 4 17 30
55 57 70 83 96 109 111 3 16 29 42
[Lout, Uout] = lu_nopivot(A)
Lout = 11×11
1.0000 0 0 0 0 0 0 0 0 0 0
1.1765 1.0000 0 0 0 0 0 0 0 0 0
1.3529 2.0000 1.0000 0 0 0 0 0 0 0 0
1.5294 3.0000 -Inf 1.0000 0 0 0 0 0 0 0
1.7059 56.7436 Inf NaN 1.0000 0 0 0 0 0 0
0.1029 -5.0833 NaN NaN NaN 1.0000 0 0 0 0 0
0.2794 -4.0833 -Inf NaN NaN NaN 1.0000 0 0 0 0
0.4559 -3.0833 -Inf NaN NaN NaN NaN 1.0000 0 0 0
0.6324 2.7115 Inf NaN NaN NaN NaN NaN 1.0000 0 0
0.8088 3.7115 Inf NaN NaN NaN NaN NaN NaN 1.0000 0
Uout = 11×11
68.0000 81.0000 94.0000 107.0000 120.0000 1.0000 14.0000 27.0000 40.0000 53.0000 66.0000
0 -2.2941 -4.5882 -6.8824 -130.1765 11.8235 9.5294 7.2353 4.9412 2.6471 -10.6471
0 0 0 -121.0000 110.0000 0 0.0000 0 0 0 11.0000
NaN NaN NaN -Inf Inf NaN Inf NaN NaN NaN Inf
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
A2 = randi([-9 9], 11, 11)
A2 = 11×11
6 4 -8 2 3 1 3 9 2 -2 4
3 -9 4 1 4 4 -9 -8 -7 7 6
-9 -1 0 1 2 -3 9 2 -6 -6 1
-3 -8 6 2 -6 2 2 5 7 -2 -6
-8 -8 3 -9 -7 0 -2 7 -7 3 -6
-8 6 -7 4 -7 2 9 -3 -7 8 -8
-6 -9 3 -6 -3 0 -2 0 -9 -6 -4
-1 0 -4 6 -6 6 8 -5 2 3 4
1 4 1 -9 -8 -9 6 0 -3 9 7
-6 -4 -6 8 -8 9 -8 -7 -2 -8 -5
[Lout2, Uout2] = lu_nopivot(A2)
Lout2 = 11×11
1.0000 0 0 0 0 0 0 0 0 0 0
0.5000 1.0000 0 0 0 0 0 0 0 0 0
-1.5000 -0.4545 1.0000 0 0 0 0 0 0 0 0
-0.5000 0.5455 0.2826 1.0000 0 0 0 0 0 0 0
-1.3333 0.2424 1.1486 -5.8450 1.0000 0 0 0 0 0 0
-1.3333 -1.0303 1.1268 1.1550 -0.0040 1.0000 0 0 0 0 0
-1.0000 0.4545 1.0326 -4.3488 0.7409 -0.1543 1.0000 0 0 0 0
-0.1667 -0.0606 0.5797 2.1473 -0.1257 0.8994 -4.4725 1.0000 0 0 0
0.1667 -0.3030 -0.5688 -3.7752 0.5683 -1.2929 4.4751 0.1036 1.0000 0 0
-1.0000 0 1.6739 1.7674 0.0608 1.3914 8.6670 -1.8582 -1.2231 1.0000 0
Uout2 = 11×11
6.0000 4.0000 -8.0000 2.0000 3.0000 1.0000 3.0000 9.0000 2.0000 -2.0000 4.0000
0 -11.0000 8.0000 0 2.5000 3.5000 -10.5000 -12.5000 -8.0000 8.0000 4.0000
0 0 -8.3636 4.0000 7.6364 0.0909 8.7273 9.8182 -6.6364 -5.3636 8.8182
0 0 0 1.8696 -8.0217 0.5652 6.7609 13.5435 14.2391 -5.8478 -8.6739
0 0 0 0 -59.2636 3.6841 34.0388 89.9147 88.4554 -29.6260 -62.4632
0 0 0.0000 0 -0.0000 6.1988 -15.3254 -30.2266 -21.1917 26.2558 1.2876
0 0 0.0000 0 -0.0000 -0.0000 -1.4198 -7.8365 -3.3907 -5.5297 -2.1692
0 0 -0.0000 0 0.0000 -0.0000 0.0000 -35.5902 -9.8650 -33.2539 -0.2894
0 0 0.0000 0 -0.0000 0.0000 -0.0000 0.0000 -17.2532 65.6044 26.7188
0 0 -0.0000 0 0.0000 0.0000 0.0000 0.0000 0 40.9618 52.5214
function [L, U] = lu_nopivot (A)
n = size(A, 1);
L = eye(n);
for k = 1 : n
L(k + 1 : n, k) = A(k + 1 : n, k) / A(k, k);
for l = k + 1 : n
A(l, :) = A(l, :) - L(l, k) * A(k, :);
end
end
U = A;
end
I see thank you very much sir, it was very helpful.
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Logical 的更多信息
标签
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
