Converting Python to Matlab
古いコメントを表示
Spent a few hours on trying to figure out why the outputs are different, no luck. Python and Matlab are in a txt file along with their outputs.
Suggestions on what I should be looking at to resolve the issue?
2 件のコメント
Walter Roberson
2017 年 10 月 24 日
We do not have the data or NumPanels to test with.
Zach Dunagan
2017 年 10 月 24 日
編集済み: Zach Dunagan
2017 年 10 月 25 日
採用された回答
その他の回答 (2 件)
Zach Dunagan
2017 年 10 月 25 日
編集済み: Walter Roberson
2017 年 10 月 25 日
15 件のコメント
Walter Roberson
2017 年 10 月 25 日
For the special case of square matrices, often the easiest way is
M - diag(diag(M))
For other matrices,
tril(M,1) + triu(M,1)
Zach Dunagan
2017 年 10 月 26 日
Walter Roberson
2017 年 10 月 26 日
Just in case you have unsigned integers or the case where the existing value is so different from the new value that you have to worry about loss of precision:
Square matrix:
M(1:size(M,1)+1:end) = NewNumber;
Non-square matrix:
shorter = min(size(M,1),size(M,2));
lastidx = size(M,1)*(shorter-1)+shorter;
M(1:size(M,1)+1:lastidx) = NewNumber;
Zach Dunagan
2017 年 10 月 26 日
Walter Roberson
2017 年 10 月 26 日
M is the array whose diagonal is to be set. For example,
nSource(1:size(nSource,1)+1:end) = NewNumber;
if nSource is square.
Zach Dunagan
2017 年 10 月 26 日
編集済み: Walter Roberson
2017 年 10 月 26 日
Zach Dunagan
2017 年 10 月 26 日
編集済み: Walter Roberson
2017 年 10 月 26 日
Walter Roberson
2017 年 10 月 26 日
A[:numPanels,:numPanels]=nSource
would be
A(1:end-1, 1:end-1) = nSource;
I am not certain about
A[:numPanels,-1]=np.sum(nVortex,axis=1)
but I suspect
A(1:end-1, end) = sum(nVortex, 2);
Zach Dunagan
2017 年 10 月 26 日
Zach Dunagan
2017 年 10 月 26 日
Andrei Bobrov
2017 年 10 月 26 日
A(end, 1:end-1) = tSource(1, :) + tSource(end, :);
Zach Dunagan
2017 年 10 月 27 日
Zach Dunagan
2017 年 10 月 28 日
編集済み: Walter Roberson
2017 年 10 月 28 日
Zach Dunagan
2017 年 10 月 28 日
編集済み: Walter Roberson
2017 年 10 月 28 日
Zach Dunagan
2017 年 10 月 28 日
ASHOK KUMAR MEENA
2022 年 4 月 18 日
0 投票
def Lagrange(x, y, n, xx):
sum = 0
for i in range(0, n + 1):
product = y[i]
for j in range(0, n + 1):
if (i != j):
product = product * (xx - x[j]) / (x[i] - x[j])
sum += product
return sum
def Trapezoidal(h, n, f):
sum = f[0]
for i in range (1, n):
sum = sum + 2 * f[i]
sum = sum + f[n]
ans = h * sum / 2
return ans
カテゴリ
ヘルプ センター および File Exchange で Call Python from MATLAB についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!