COM - Feval() passing a table as a Double[,] is as expected, nonetheless c# Dictionary.ToArray() returns a Double[][] (what is called a jagged array)

1 回表示 (過去 30 日間)
Andy
Andy 2024 年 4 月 21 日
回答済み: Venkat Siddarth Reddy 2024 年 5 月 6 日
What would a best practice be in passing a Dictionary like structure into a matlab function such as "cov" using COM's Feval() ... take the below example:
SortedDictionary<DateTime, Double[]> tableTT;
...
matlab.Feval("cov", 1, out result, tableTT.Values.ToArray());
will fail, as ToArray() returns a jagged array.
Is there a way to avoid using a "conversion" function, such as:
static double[,] ImperativeConvert(double[][] source)
{
double[,] result = new double[source.Length, source[0].Length];
for (int i = 0; i < source.Length; i++)
{
for (int k = 0; k < source[0].Length; k++)
{
result[i, k] = source[i][k];
}
}
return result;
}
to convert the jagged array into a two-dimentional array?

回答 (1 件)

Venkat Siddarth Reddy
Venkat Siddarth Reddy 2024 年 5 月 6 日
Hi Andy,
You can call another MATLAB function called reshape, to convert the jagged array into 2D array.
To learn more about it,refer to the following documentation:
I hope this resolves your query, if not please comment down your query.

カテゴリ

Help Center および File ExchangeCell Arrays についてさらに検索

製品


リリース

R2024a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by