Effacer les filtres
Effacer les filtres

H is a 108x108 tall array, P is a 108x9 double array, when excute etu=H\P , this syntax is wrong, what is right ?

2 vues (au cours des 30 derniers jours)
H is a 108x108 tall array, P is a 108x9 double array, when excute etu=H\P ,
matlab report alarm massege:
Incompatible non-scalar tall array arguments. Each of the tall arrays must be the same size in the first dimension, must be derived from a single tall array, and must not have been indexed differently in the first dimension (indexing operations include functions such as VERTCAT, SPLITAPPLY, SORT, CELL2MAT, SYNCHRONIZE, RETIME and so on)
Is this syntax (etu=H\P) not right ?
Whant syntax for left divide should I use?
Thanks

Réponses (2)

John D'Errico
John D'Errico le 14 Juin 2019
Modifié(e) : John D'Errico le 14 Juin 2019
Why would you use tall on a problem that tiny? Anyway, you could just convert to double. In fact, that proves you do not seem to have what you have just said you claim you have.
H = tall(rand(108,108));
whos H
Name Size Bytes Class Attributes
H 108x108 45 tall
rhs = rand(108,9);
H\rhs
ans =
108×9 tall double matrix
2.4572 0.48194 0.88151 1.5778 -0.56592 -0.58263 -0.97854 -0.45786 0.96671
1.2718 0.99114 0.53209 0.97513 -2.0726 -2.3997 0.13417 -2.5592 -0.022257
-0.67916 1.6978 -0.75485 0.84247 -1.9111 -3.0358 0.70922 -1.8236 -1.0565
-2.2082 -0.62135 -1.0939 -1.5911 2.4601 2.0494 0.5099 1.4656 0.1469
0.92375 -0.082748 0.43531 -0.091367 -1.236 -0.46374 -0.43555 -1.1131 0.054922
-3.3095 0.12047 -1.6272 -2.2056 1.1716 -0.27017 1.5322 0.46177 -0.76906
-0.26766 -1.4013 -0.33984 -0.48624 1.303 1.8449 -0.074787 0.82824 0.38399
0.4867 0.056338 0.061991 0.73609 0.24908 0.49141 -0.44451 0.78057 0.36349
: : : : : : : : :
: : : : : : : : :
So backslash works just fine. Does it produce the same result as the use on a double array?
(H\rhs) == (double(H)\rhs)
ans =
108×9 tall logical array
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
: : : : : : : : :
: : : : : : : : :
all(all((H\rhs) == (double(H)\rhs)))
ans =
tall logical
1
Yes. But no error is generated. That suggests you have done something that we are not told.
When you get an error, verify your belief that you have actually done what you claim to have done.
However, even if you have somehow created something that somehow fails the requirements outlined in the error message, it still does not preclude the abaility to convert to a double array here. So perhaps you have created H in a way that is different than I have done, and so H was created in some complex way that used one or more of:
VERTCAT, SPLITAPPLY, SORT, CELL2MAT, SYNCHRONIZE, RETIME
then you could still just do the trivial and convert to double. H is TINY. There is no neeed to use a tall array here.
  1 commentaire
Stephen23
Stephen23 le 14 Juin 2019
Modifié(e) : Stephen23 le 14 Juin 2019
donghai peng's "Answer" moved here:
Thank you very much for your support.
I am testing tall array , so H is tiny.
H is a tall array double, but H data type shows unevaluated.
if need use gather function to H or not? if yes, will not fit computer memory when H is large.
Like this, i should how to do?
Thanks.

Connectez-vous pour commenter.


donghai peng
donghai peng le 17 Juin 2019
fixed, thanks.
  2 commentaires
lalikesbrains
lalikesbrains le 18 Sep 2019
How did you fix this? I'm having a similar issue with the .* operation. The two tall arrays are the exact same size but I get an error that says that the first dimension must be the same. I don't want to gather to run the operation because that would defeat the purpose of using the tall array in the first place.
Vatsal Patel
Vatsal Patel le 28 Avr 2020
Hello lalikesbrains,
Did you get the answer for how to use .* with two tall arrays of same size in the first dimension? I am stuck at the same place too and would appreciate any help. Thank you.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by